退回的邮件未到达 Postfix

退回的邮件未到达 Postfix

我在 Centos 6.4 生产 (www.bw.co.uk) 机器上安装了 postfix 和 dovecot。目的是发送所有系统和事务消息并收集退回邮件。然后标记导致退回的电子邮件 ID,以防止网站向这些 ID 发送更多消息。

我在 DNS 上设置了必要的 SPF 记录,并在托管服务提供商端设置了 PTR 记录。我的 MX 记录指向我们员工发送和接收电子邮件的另一个邮件服务器。

我的问题是,虽然我可以从生产机器发送邮件,但我无法使用我的 php 代码片段读取退回邮件。实际上,我甚至不知道退回邮件是否到达机器!

我在测试机 (www.st.biz) 上进行了类似设置,主机提供商相同,MX、SPF 和 PTR 记录的设置方式也类似,即 MX 记录指向员工发送和接收邮件的另一台邮件服务器。在测试机上,我可以使用 PHP 程序读取退回邮件。

生产机器上的 postfix 日志 /var/log/maillog 指示一次退回,该退回不是由发送事务消息的 php 程序发起的 3 月 3 日 03:15:03 bw postfix/smtp[22338]: 09420120CA3: to=,relay=mail.st.in[999.999.999.999]:25,delay=0.9,delays=0.05/0.02/0.43/0.41,dsn=4.7.1,status=deferred(host mail.st.in[999.999.999.999] 说:451 4.7.1 请稍后再试(回复 DATA 命令))

知道可能是什么问题吗?

答案1

退回的邮件将被送回中继系统。您必须安排它将退回的邮件转发回您的系统进行处理。在中继系统上处理退回的邮件可能比将退回的邮件转发回您的系统更简单。

请使用以下格式的特定发送电子邮件地址“[电子邮件保护]“。它应该位于适合您的应用程序的域或子域中。

在正常处理过程中,有些电子邮件可能会在队列中停留很长时间才会被退回。通常,这个时间在 4 到 7 天之间。

有些系统会先接受邮件,然后再决定是否投递。如果系统运行良好,您将不会看到它们的退回邮件,因为如果它们确实发送了退回邮件,则可能会产生反向散射垃圾邮件。

编辑:我希望您的电子邮件使用 MX 服务器发送,该服务器似乎与您的 Web 服务器不同。(从www.域发送的电子邮件不常见,根据我的经验,很可能是垃圾邮件。)使用同一服务器上的第二个域发送邮件可能更合适。您描述的两个域似乎都无效,因此我无法验证您的配置。

如果您希望退回邮件保留在您的 Web 服务器上,请将其用作自身的 MX,或者直接忽略 MX 记录。配置一个postmaster可用于发回有关配置问题信息的地址。同样,abuse建议使用一个地址,以便可以向您发送滥用报告。这两者都可以转发给您引用的 MX 域上的用户。

答案2

Bill 说的没错,MX 记录会导致邮件无法返回。基本上,虽然 SPF 允许您发送邮件,并且 PTR 记录可以确认这一点,但指向另一台服务器的 MX 记录意味着邮件将被退回。

当远程邮件服务器需要退回电子邮件时,它会在您的域上进行 MX 查找,并将电子邮件发送到该记录。因此,您的所有退回邮件都将返回到该服务器。

您可以在服务器上创建一个子域,然后使用 MX 记录在机器上创建一个别名[email protected]=> [email protected]。这样,您将收到所有退回邮件。

相关内容