Exim4 - temporarily freeze outgoing emails from specific user

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.


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 [email protected] with the address of the sender whose mail has been frozen:

exiqgrep -i -f [email protected] | xargs exim -Mt