在 exim 中创建 ACL 拒绝发件人但排除本地域

create ACL in exim deny senders but exclude localdomains

在 Internet 上阅读 material,我找到了一种阻止扩展名 (TLD) 或电子邮件帐户的方法,这是一个很好的选择,因为我让邮件永远不会收到反垃圾邮件,所以我节省了资源。

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

进入文件deny_senders包含这个:

*.ru *。在线的 *.出价

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

其中一个本地域以扩展名 "bla.online" 结尾,是否可以创建排除本地域的规则?

你需要确保你的 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 在第一次匹配时终止。因此,应该首先测试更具体的白色正则表达式。此外,这两个规则应该放在任何其他可以接受消息传递的规则之前。