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