Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I need to temporarily freeze outgoing emails from specific sender with exim4. The sender logs in with remote SMTP (i.e. over TCP/IP).

What I want to do is to freeze (but not deny) all his emails so I can check the queue and either allow or disallow further processing.

Any help would be appreciated.

share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

You'll need to make the following changes to your exim.conf file:

In the main configuration section, make sure that you have enabled the acl_smtp_mail control as follows:

acl_smtp_mail = acl_check_mail

Be sure to change acl_check_mail to the actual name of your access control list that handles acl_smtp_mail

Then, in the acl_check_rcpt ACL configuration section, create a new rule:

accept   condition = ${lookup{$sender_address}lsearch{/etc/exim/freezelist_sender_addresses}{1}{0}}
         control   = freeze/no_tell


Save the config file. Now create the file /etc/exim/freezelist_sender_addresses and place all your sender addresses which need to be frozen into this file, one address per line. Make sure you set the correct permissions on this file so that Exim can read it.

All emails sent from the addresses in the /etc/exim/freezelist_sender_addresses will now be accepted into the queue (provided they pass the other ACLs) and then automatically frozen by Exim.

To unfreeze these messages, run this command, replacing user@domain.tld with the address of the sender whose mail has been frozen:

exiqgrep -i -f user@domain.tld | xargs exim -Mt 
share|improve this answer
    
Works great, thanks. –  Viktor Stískala May 8 '11 at 0:01
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.