PHP mail() 函数不起作用 - 看起来 exim 出于某种原因拒绝了

PHP mail() 函数不起作用 - 看起来 exim 出于某种原因拒绝了

我已经在另一台服务器上测试了该脚本并且运行良好。

当我检查 exim 日志时,发现有很多这样的行,

User 0 set for local_delivery transport is on the never_users list

有很多这样的

routing defer (-51): retry time not reached

甚至还有一些像这样

R=lookuphost T=remote_smtp defer (-44): SMTP error from remote mail server after RCPT TO:

说实话我非常困惑。

从 webmail/outlook 等发送所有邮件都正常!由于这是 VPS,我有完整的 SSH 和 root 访问权限。任何帮助都将不胜感激

答案1

Exim 正在尝试将邮件发送到远程 SMTP 主机,但失败了。以下是:

R=lookuphost T=remote_smtp defer (-44): SMTP error from remote mail server after RCPT TO:

行的含义。它将这些邮件排队等待重试,并跳过 mailq 以查看是否应尝试重新发送这些邮件。它不会立即尝试,必须达到预定的超时时间。这会导致:

routing defer (-51): retry time not reached

最后,当达到最大重新投递尝试次数但仍然失败时,它会尝试将邮件投递给邮件管理员(默认情况下配置为 root)。但是,默认的 exim 配置是永远不会投递给 root,因此您会得到:

**User 0 set for local_delivery transport is on the never_users lis**t

这里有两个问题:

首先:exim 无法向该特定 SMTP 服务器投递邮件。目标 SMTP 服务器已损坏,或者 Exim 无法向任何 SMTP 服务器投递邮件。exim 是否会向其他域上的地址投递邮件?您可以使用以下命令在命令行上进行测试:

/path/to/exim -v '[email protected]'
message here
^D ( control D )

其次,您没有有效的方法让 exim 向您报告失败。配置您的/etc/aliases文件以确保postmaster和其他帐户正确别名为真实地址。

相关内容