从我的服务器上使用 SMTP 连接到 exim4 守护程序 light 的守护程序发送的邮件似乎被冻结。在 exim4 日志中:
2014-10-01 09:52:19 1XZKKJ-00049R-8p <= [email protected] H=localhost (server.example.com) [127.0.0.1] P=esmtp S=9492
014-10-01 09:52:22 1XZKKJ-00049R-8p ** [email protected] R=dnslookup T=remote_smtp: SMTP error from remote mail server after RCPT TO:<[email protected]>: host somewhere.com [203.170.86.177]: 550-Verification failed for <[email protected]>
550-No Such User Here
550 Sender verify failed
我认为这是说 exim4 拒绝了发件人的,即发件人电子邮件地址? Exim4 正在 server.example.com 上运行,我正在使用[电子邮件受保护]作为不存在的发件人 - 它在过去有效。我最近不得不在 example.com 上重新做域记录,但它们现在都正常并且已经渗透出去(它们是几天前完成的)。
我想我和这里有同样的问题:http://help.directadmin.com/item.php?id=59,但无法尝试该解决方案,因为找不到 exim4 配置文件 - 下面有很多/etc/exim4/conf.d
(我dpkg-reconfigure exim4-config
安装 exim 时刚刚运行)并且文档说只有一个?还有之前是怎样运作的?
我准备允许任何发件人 - 防火墙阻止对 exim 的外部访问,并且我仅使用它从我自己的守护程序发送邮件。
更新发送到其他电子邮件地址有效,但仅发送到特定的电子邮件地址(这当然有效)则无效 - 这很奇怪,因为 exim 说这是发件人而不是收件人的问题?!
答案1
接收 MTA 拒绝不存在的发送者;您对此无能为力(除了简单地使用真实的发件人之外)。
我还拒绝不存在的信封发件人,因为这意味着NDR也无法传递给发件人,并且在 99.5% 的情况下,不存在的信封发件人是垃圾邮件或网络钓鱼或类似邮件。没有充分的理由不使用可用的信封发送器。
答案2
检查 Exim acl 中是否有“verify = sender”,例如为 RCPT TO: 命令执行的 ACL(查找 acl_smtp_rcpt=xxxxx)。 acl 中的 Exim 选项会检查以确保发件人是“有效的”(请参阅 exim 文档以了解其确切含义),并且您可能需要将其删除,因为这是仅从假发件人发送的内部服务器。在生产服务器中,有更好的方法可以做到这一点。
如果您的 ACL 在处理 RCPT TO: 时检查发件人,就像某些配置所做的那样,那么您可能会收到此消息,看起来问题出在收件人身上,而实际上是发件人验证导致了拒绝。
尝试在地址验证模式下运行命令行 exim 以查看正在执行哪些 acl:
exim4 -d -bvs [email protected]
exim4 -d -bv [email protected]