这是一种奇怪的情况,但现在看来,我正在处理的第三方Exim邮件服务器似乎拒绝来自以“notes”开头的任何电子邮件地址的所有邮件。
所以[email protected],[email protected],注意@任何东西在发出MAIL FROM SMTP命令时都会被拒绝。 伪成绩单:
> telnet bar.com 25 HELO foo.com 250 OK MAIL FROM: <[email protected]> 500 unrecognized command
其他地址都可以正常工作,但任何“笔记”帐户地址都会返回一个无法识别的命令。 我search了exim规范 ,并找不到任何保留的地址或任何与“笔记”有关的事情,所以似乎这个第三方服务器configuration有误,或者在exim版本中有一些奇怪的bug使用。 或者一些垃圾邮件filter会有这种行为?
有什么想法吗?
我怀疑这是Eximconfiguration中某个不正确规则的结果。 谢天谢地,Exim提供了一些奇妙的debuggingfunction,允许您在查看Exim逐行评估规则的同时模拟SMTP会话。 这应该很快让你缩小造成麻烦的特定规则。
在控制台中,使用-bh参数运行Exim,然后使用IP地址从中模拟SMTP连接。 例如,如果您想模拟IP地址为196.236.151.141的远程服务器连接到您的邮件服务器,则可以运行:
exim -bh 196.236.151.141
然后您将进入一个类似telnet的模拟控制台,您可以在其中input标准SMTP命令,同时查看Exim处理的每个规则的结果。
由于这是一个模拟的SMTP会话,任何事情都不会被发送出去或提交给磁盘,这使得它成为testing你的configuration和准确地找出错误发生的原因。
我认为有人可能已经足够愚蠢的投入一些违规的规则,拒绝来自notes @ *的电子邮件。 也许有了这个有缺陷的想法,它可以防止一些垃圾邮件。 我会说grep的“笔记”在eximconfiguration目录,看看你得到了什么。
根据我的经验,我知道exim中很less或没有包含string“notes”的configuration文件,所以任何出现的东西都应该引导你朝正确的方向发展。 删除或注释掉你发现的任何可疑的条目,重新加载exim,看看是否修复它。
如果在诸如ASSP之间存在代理垃圾邮件filter,则可能还需要仔细检查该configuration。
更新:回答关于隔离的评论。
隔离仅对有限的垃圾邮件有帮助,即使这样,人为因素也会出现。 人们会很快恼火,马上忽略隔离的事情。
通常你在smtp交换的早期阶段阻止垃圾邮件。 它会被灰色列出,或者由于IP阻止列表而导致连接被拒绝,没有有效的helo或没有有效的反向dns。 在这个阶段,还没有电子邮件正文转移,因此stream量很less。 这些便宜而且非常有效的方法可以阻止95%以上的垃圾邮件,而且几乎不会出现误报。
如果垃圾邮件通过了这些检查,那么您的扫描就不那么精确和更耗费资源,如贝叶斯扫描和病毒扫描。 如果一封电子邮件没有通过扫描,就会阻止它,并且可以考虑隔离最低分数的电子邮件(即它看起来很像一个合法的电子邮件)。
如果要隔离所有将被阻止的电子邮件,则用户的信息超载,系统必须处理所有额外的stream量,包括增加的磁盘使用量。 用户不会筛选数千个垃圾邮件来查找一个合法的电子邮件。 所以你的用户仍然会错过“那个重要的电子邮件”。
据我所知,大的电子邮件提供商以类似的方式工作,这是常见的做法。