发送电子邮件时出错

时间:2011-01-11 18:10:34

标签: php email

几天前,我可以通过我服务器上的 mail()功能发送电子邮件。但现在,邮件不会发送。错误日志中没有任何内容。我没有得到任何错误。我不知道,为什么电子邮件不发送。

我该怎么办?我该如何解决这个问题?

修改 现在我收到所有电子邮件(约18封邮件:))。为什么邮件会延迟?

4 个答案:

答案 0 :(得分:0)

您是否尝试过this

  

问题似乎是PHP使用   ini指令sendmail_from来设置   SMTP中的来自电子邮件地址   协议。如果这不正确   设置,或者如果它与from不匹配   电子邮件标题中的标题,电子邮件   被垃圾邮件保护软件捕获。   最简单的解决方案是设置   执行期间的指令:

     

ini_set(“sendmail_from”,$ email_from);

     

$ headers =“From:$ email_from”;

     

邮件($ to,$ subject,$ message,   $头);

答案 1 :(得分:0)

好的,现在我有18封邮件。我不知道,为什么邮件会延迟。

答案 2 :(得分:0)

也许您的接收邮件服务器实现了灰名单(http://en.wikipedia.org/wiki/Greylisting)...

您是否可以访问网络服务器的mailqueue或maillog?在这种情况下,您可以在那里搜索延迟或退回的邮件。

答案 3 :(得分:0)

PHP的邮件程序功能实际上并不传递邮件。它只是将它交给SMTP服务器。 mail()不考虑它是否实际交付,只关注交接。

如果SMTP服务器接受它,则mail()将返回true并假装一切正常。 SMTP服务器可能会删除邮件,将其发送到错误的位置,通过一堆其他SMTP服务器将其路由,导致邮件延迟一年等等,但mail()仍然会说出所有内容细

查找原因的地方是您的邮件服务器自己的日志。如果出现交货问题,那么某处的每次交货尝试都会列出。