Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从PHP';s mail()失败?_Php_Linux_Error Handling_Email_Sendmail - Fatal编程技术网

如何从PHP';s mail()失败?

如何从PHP';s mail()失败?,php,linux,error-handling,email,sendmail,Php,Linux,Error Handling,Email,Sendmail,当()失败时,没有太多关于出错原因的信息。我知道最好的做法是检查您的sendmail日志,或者任何mailer使用的PHP。但是从编程和实用的角度来看:在Linux托管环境中,PHP程序可以做些什么来获得尽可能多的额外信息,以正确记录故障、可能的原因等,并产生可用的、可操作的错误?肯定会有比这更好的答案,但我也很想听听。也许一种解决方案是编写自己版本的mail()函数。这并不难。如果您真的需要关于消息发送失败原因的完整/详细信息,那么这可能不是一个坏主意。它肯定会给你更多的控制权。问题是,在一个

当()失败时,没有太多关于出错原因的信息。我知道最好的做法是检查您的sendmail日志,或者任何mailer使用的PHP。但是从编程和实用的角度来看:在Linux托管环境中,PHP程序可以做些什么来获得尽可能多的额外信息,以正确记录故障、可能的原因等,并产生可用的、可操作的错误?

肯定会有比这更好的答案,但我也很想听听。也许一种解决方案是编写自己版本的mail()函数。这并不难。如果您真的需要关于消息发送失败原因的完整/详细信息,那么这可能不是一个坏主意。它肯定会给你更多的控制权。

问题是,在一个类似Unix的系统上,PHP只是把整个事情交给一个命令行实用程序,而这个实用程序实际上只给了PHP说“是”或“不是”的能力。要想做您想做的事情,您需要使用类似的东西,它实际上可以智能地与邮件服务器进行通信。

我一直无法成功检索错误信息。我发现缓解这种情况的唯一方法是在我的php应用程序中通过一个队列系统,队列将继续尝试发送电子邮件。在共享托管环境中,我怀疑我是否能够加载外部php模块。但主要问题是,我真的,真的有更重要的问题要首先解决:)