对PHP邮件进行故障排除 [英] Troubleshooting PHP Mail

查看:73
本文介绍了对PHP邮件进行故障排除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何检查服务器上发送的邮件有问题? 我运行了一个简单的测试:

How can I check a problem with mail being sent on my server? I run a simple test:

if(mail($to, $subject, $message)) {
echo 'Mail Sent';
}

测试输出文本;但是,没有邮件到达.

which the test outputs the text; but, no mail ever arrives.

如何找到问题所在?

推荐答案

这是一个很长的故事.一些要点(假设mail()返回true,并且错误日志中没有错误):

That is quite a long story. A few bullet points (Assuming that mail() returns true and there are no errors in the error log) :

  • 发件人地址(发件人")是否属于您服务器上的域?如果不是,请这样做.
  • 您的服务器是否在黑名单中(例如,在spamhaus.org上检查IP)?共享托管的可能性很小.
  • 邮件是否被垃圾邮件过滤器过滤?使用带有垃圾邮件文件夹的freemailer开一个帐户,然后进行查找.另外,请尝试将邮件发送到没有垃圾邮件过滤器的地址.
  • 您是否需要mail()的第五个参数"-f"添加发件人地址? (请参阅PHP手册中的mail()命令)
  • 如果您有权访问日志文件,请按照上面的建议进行检查.
  • 您是否检查发件人:"地址中是否存在退回邮件(退回发件人")?您还可以设置一个单独的错误收信人"地址.

对于德语发言者,我前段时间就此问题写了一篇非常详尽的做什么".请参见此处.

For german speakers, I have written a quite exhaustive "what to do" on this issue some time ago. See here.

这篇关于对PHP邮件进行故障排除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆