Exim4 - 暂时冻结来自特定用户的外发电子邮件

Vik*_*ala 7 debian exim access-control-list

我需要使用 exim4 暂时冻结来自特定发件人的外发电子邮件。发件人使用远程 SMTP(即通过 TCP/IP)登录。

我想要做的是冻结(但不拒绝)他的所有电子邮件,以便我可以检查队列并允许或禁止进一步处理。

任何帮助,将不胜感激。

Ric*_*ler 5

您需要对exim.conf文件进行以下更改:

在主配置部分,确保您已acl_smtp_mail按如下方式启用控件:

acl_smtp_mail = acl_check_mail
Run Code Online (Sandbox Code Playgroud)

请务必更改acl_check_mail为处理的访问控制列表的实际名称acl_smtp_mail

然后,在acl_check_rcptACL 配置部分,创建一个新规则:

accept   condition = ${lookup{$sender_address}lsearch{/etc/exim/freezelist_sender_addresses}{1}{0}}
         control   = freeze/no_tell
Run Code Online (Sandbox Code Playgroud)


保存配置文件。现在创建文件/etc/exim/freezelist_sender_addresses并将所有需要冻结的发件人地址放入此文件中,每行一个地址。确保您为此文件设置了正确的权限,以便 Exim 可以读取它。

从 中的地址发送的所有电子邮件/etc/exim/freezelist_sender_addresses现在都将被接受到队列中(前提是它们通过了其他 ACL),然后由 Exim 自动冻结。

要解冻这些邮件,请运行以下命令,将 user@domain.tld 替换为邮件已被冻结的发件人的地址:

exiqgrep -i -f user@domain.tld | xargs exim -Mt 
Run Code Online (Sandbox Code Playgroud)

  • 要冻结从 Web 应用程序本地发送的邮件,我必须将规则放在 `acl_not_smtp` acl 中。 (2认同)