如果php-mail()无法发送邮件,有没有任何方法可以让我们知道失败的确切原因。
快速查看,我找不到任何方法来捕捉mail()
生成的错误。最简单的方法是使用error_get_last来收集上次发生的错误。但是,一旦mail()
返回false
,就应该执行此操作。
另一种可能的解决方案是在发送邮件时设置_error_handler,然后在发送邮件后立即删除该处理程序。然后,您的错误处理程序应该能够捕获发送邮件时发生的任何错误/警告/通知。
使用像swiftmailer这样的库会更加灵活,因为它可以让你很容易地捕捉到它的错误和异常。
如果您谈论的是接收服务器上的错误,那么您需要实现VERP或某种反弹检测算法。PHPMailer BMH在这种情况下可能是有用的。
我的配置使用sendmail,它在sendmail目录中输出崩溃报告。检查文件夹中的错误转储。