exim - 在 exim 中创建 ACL 拒绝发件人但排除本地域
问题描述
阅读互联网上的资料后,我找到了一种阻止扩展名 (TLD) 或电子邮件帐户的方法,这是一个很好的选择,因为我使邮件永远不会收到反垃圾邮件,因此我节省了资源。
丢弃发件人 = /opt/exim/deny_senders 消息 = 你被列入黑名单
在文件deny_senders 中包含以下内容:
*.ru *.online *.bid
在文件 /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 在第一次匹配时终止。所以应该首先测试更具体的白色正则表达式。此外,这两个规则应该放在任何其他可以接受消息进行传递的规则之前。
推荐阅读
- react-native - 反应导航抽屉不会保持打开状态
- d3.js - 空数据点的 Visx Linepath(d3 曲线)线性插值
- firebase - 使用条件显示后台通知 - Flutter
- python - 我正在尝试使用不和谐机器人使用 tweepy 自动发布推文
- python - Jinja2 模板包含来自父目录的另一个模板
- python - Python多参数问题
- reactjs - 如何让 Chart JS 忽略 DatasSets 之间的比例
- arrays - 检查两个对象是否相等 React Native
- python - 在检查函数中获取 __protected_call__
- javascript - 服务器错误类型错误:无法读取未定义的属性(读取“应用程序”)