几天前,我可以通过我服务器上的 mail()功能发送电子邮件。但现在,邮件不会发送。错误日志中没有任何内容。我没有得到任何错误。我不知道,为什么电子邮件不发送。
我该怎么办?我该如何解决这个问题?
修改 现在我收到所有电子邮件(约18封邮件:))。为什么邮件会延迟?
答案 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()
仍然会说出所有内容细
查找原因的地方是您的邮件服务器自己的日志。如果出现交货问题,那么某处的每次交货尝试都会列出。