sendmail正在工作,但PHP mail()正在失败

sendmail正在工作,但PHP mail()正在失败,php,linux,apache,email,sendmail,Php,Linux,Apache,Email,Sendmail,我似乎不能用PHP的邮件发送电子邮件。我也尝试过PHPMailer和Swiftmail,但没有成功。但是,服务器上的以下命令成功传递邮件 cat test.txt | mail -s "test mail" my@email.com 有没有办法追踪问题的来源?邮件似乎只返回true或false。在PHP>=5.2上,无法检索上次函数调用返回的任何错误。在链接页面上有关于如何从旧版本的PHP获取等效信息的详细信息 对于PHPMailer,有$mailer->ErrorInfo属性,其中包含上次

我似乎不能用PHP的邮件发送电子邮件。我也尝试过PHPMailer和Swiftmail,但没有成功。但是,服务器上的以下命令成功传递邮件

cat test.txt | mail -s "test mail" my@email.com 
有没有办法追踪问题的来源?邮件似乎只返回true或false。

在PHP>=5.2上,无法检索上次函数调用返回的任何错误。在链接页面上有关于如何从旧版本的PHP获取等效信息的详细信息


对于PHPMailer,有$mailer->ErrorInfo属性,其中包含上次发生的错误。斯威夫特梅勒一定有类似的东西。最有可能的是,如果邮件是从命令行工作的,而不是从PHP或邮件库中工作的,则可能存在配置错误。我猜您的主机没有配置PHP sendmail\u path ini参数。

启用所有错误、警告和通知以及错误报告。让错误转移到有用的地方,或者注册一个回调函数来执行一些有用的操作

然后你会看到发生了什么。PHP错误处理在默认情况下是无用的,它的默认值在任何地方都是不同的,因此您必须在实践中重写它

很可能它被配置为对本地主机执行SMTP,而MTA不允许从本地主机进行中继。将其配置更改为使用sendmail,或修复MTA以允许从本地主机进行中继