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