首页 > 解决方案 > 在 exim 中创建 ACL 拒绝发件人但排除本地域

问题描述

阅读互联网上的资料后,我找到了一种阻止扩展名 (TLD) 或电子邮件帐户的方法,这是一个很好的选择,因为我使邮件永远不会收到反垃圾邮件,因此我节省了资源。

丢弃发件人 = /opt/exim/deny_senders 消息 = 你被列入黑名单

在文件deny_senders 中包含以下内容:

*.ru *.online *.bid

在文件 /opt/exim/localdomains 中是服务器的本地域。

本地域之一以扩展名“bla.online”结尾是否可以创建规则以排除本地域?

标签: exim

解决方案


您需要确保您的 exim 配置中有这样的行:
acl_smtp_rcpt = acl_rcpt 该指令声明您要过滤掉 RCPT 阶段的消息。然后,您必须找到为 RCPT 定义 ACL 的配置的确切部分,并添加以下两条规则:

acl_rcpt:
. . . . . 
accept condition = ${lookup{\$sender_address}nwildlsearch{/path/to/white.list}{yes}}
reject condition = ${lookup{\$sender_address}nwildlsearch{/path/to/black.list}{yes}}
       message = Go mail yourself you unsolicited sender!
. . . . . 

这两个条件检查包含正则表达式的文件中的发件人地址,每行一个,如下所示:

## WHITE.LIST
^.*\.bla\.online

## BLACK.LIST
^.*\.ru
^.*\.online
^.*\.bid

正则表达式应符合 PCRE 语法:
^ 表示行首
。* 表示任何符号的任何序列
\。表示点本身
您必须将白名单放在黑名单之上,因为 ACL 在第一次匹配时终止。所以应该首先测试更具体的白色正则表达式。此外,这两个规则应该放在任何其他可以接受消息进行传递的规则之前。


推荐阅读