这是一种很奇怪的情况,但情况就是这样:我正在处理的第三方 exim 邮件服务器似乎拒绝来自以“notes”开头的任何电子邮件地址的所有消息。
所以[电子邮件保护],[电子邮件保护],notes@anything 在发出 MAIL FROM SMTP 命令时被拒绝。伪记录:
> telnet bar.com 25
HELO foo.com
250 OK
MAIL FROM: <[email protected]>
500 unrecognized command
其他所有地址都可以正常工作,但任何发送到“notes”帐户的地址都会返回无法识别的命令。我搜索了进出口规格,并且找不到任何保留地址或任何与“notes”有关的内容,因此看起来这个第三方服务器配置有误,或者他使用的 exim 版本中存在某种奇怪的错误。或者某些垃圾邮件过滤器会有这种行为?
有什么想法吗?
答案1
我怀疑这是由于 Exim 配置中的某条规则不正确造成的。幸好 Exim 提供了一些出色的调试功能,可让您模拟 SMTP 会话,同时查看 Exim 逐行评估的规则。这应该可以让您快速缩小导致问题的特定规则的范围。
从控制台运行 Exim,使用参数-bh
后跟要模拟 SMTP 连接的 IP 地址。例如,如果您想模拟 IP 地址为 196.236.151.141 的远程服务器连接到您的邮件服务器,您可以运行:
exim -bh 196.236.151.141
然后,您将进入一个类似 telnet 的模拟控制台,您可以在其中输入标准 SMTP 命令,同时查看 Exim 处理的每个规则的结果。
由于这是一个模拟的 SMTP 会话,所以不会发送任何内容或将任何内容提交到磁盘,这使其成为测试您的配置并准确找出问题所在和原因的绝佳场所。
答案2
我认为有人可能很愚蠢,设置了一些不合理的规则来拒绝来自 notes@* 的电子邮件。也许这个有缺陷的想法可以阻止一些垃圾邮件。我会在 exim 配置目录中 grep 查找“notes”,看看会得到什么结果。
根据我的经验,我知道 exim 中几乎没有或根本没有默认包含字符串“notes”的配置文件,因此出现的任何内容都应该会引导您找到正确的方向。删除或注释掉您发现的任何可疑条目,重新加载 exim,看看是否能解决问题。
如果中间有一个代理垃圾邮件过滤器(例如 ASSP),您可能也需要仔细检查该配置。
更新:回答有关隔离的评论。
隔离只对你不确定的有限数量的垃圾邮件有用,即使如此,人为因素也会妨碍你。人们很快就会感到厌烦,并立即忽略隔离的事情。
通常,您会在 smtp 交换的早期阶段阻止垃圾邮件。垃圾邮件将被列入灰名单,或者由于 IP 阻止列表而拒绝连接,没有有效的 helo,或者没有有效的反向 dns。在此阶段,尚未传输任何电子邮件正文,因此流量很少。这些是阻止 95% 以上垃圾邮件的廉价且非常有效的方法,误报的可能性很小。
如果垃圾邮件通过了这些检查,您将需要进行精度较低且资源密集型的扫描,例如贝叶斯扫描和病毒扫描。如果电子邮件未通过该扫描,您将阻止它,并且可以考虑隔离得分最低的电子邮件(即看起来很像合法电子邮件)。
如果您隔离所有将被阻止的电子邮件,用户将获得超负荷的信息,您的系统必须处理所有额外的流量,包括增加的磁盘使用量。用户将无法筛选数千封垃圾邮件来找到一封合法的电子邮件。因此您的用户仍然会错过“那封重要的电子邮件”。
据我所知,大型电子邮件提供商的工作方式类似,这是常见的做法。