我的服务器上有多个域,多年来 Exim4 一直在向用户发送邮件,没有出现任何问题。但在 7 月 4 日的那个周末,它开始拒绝向一位用户发送邮件。该用户有多个电子邮件地址,例如 FirstNameLastname、FirstInitialLastName 等。它拒绝了所有这些地址。
但是,如果我将电子邮件重定向到另一台服务器,它就可以正常重定向。如果我将其重定向到该域上的我的帐户,它就可以正常工作。
日志中的拒绝消息没有什么启发性:
rejected RCPT <dan...
我首先想到的是,该帐户的权限已更改,但与其他所有帐户的权限相同。我确实将 cur 和 new 的权限更改为 777,但没有用。它们有很多子文件夹,但总大小只有 3.1M,服务器有足够的空间,所以我认为这不是大小问题。
由于自上周以来实际上没有任何变化,所以我不知道是什么导致了这个问题。
更新:我尝试直接从服务器使用命令行发送电子邮件,以防 Charter 做奇怪的事情并出现相同的错误。
答案1
我正在将此服务器用于新的远程医疗计划,并将向用户发送电子邮件。我不希望电子邮件因看起来像垃圾邮件而被退回。因此,在发生这种情况的几天前,我更改了 DNS 中的某些内容,以便外发电子邮件具有适当的 SPF、DMARC 和 DKIM TXT 文件。我还需要在服务器上进行一些更改,以便外发邮件与发件人的域匹配。我还更改了 /etc/hosts 中的服务器名称以匹配发送电子邮件的域。这些都没有造成任何问题,但几天后我重新启动了服务器。那时邮件开始被拒绝。
有一个 exim 调试命令 exim -bt[电子邮件保护]这将提供有关每个用户的信息。由于我不清楚的原因,它将该用户的邮件发送到垃圾箱,然后列出其他别名。服务器上的其他用户均未受到影响。但是,受影响的用户不是远程医疗公司的一部分,因此不在他们的别名文件中。
解决方案是将该用户添加到 /etc/mail/virtuals/telemedicine.com 文件中。