为了账号安全,请及时绑定邮箱和手机立即绑定

对PHP邮件进行故障排除

/ 猿问

对PHP邮件进行故障排除

慕侠2389804 2019-11-19 15:24:51

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


if(mail($to, $subject, $message)) {

echo 'Mail Sent';

}

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


我该如何追踪问题?


查看完整描述

3 回答

?
撒科打诨

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

  • 发件人地址(“发件人”)是否属于您服务器上的域?如果不是,请这样做。

  • 您的服务器是否列入黑名单(例如,在spamhaus.org上检查IP)?共享托管的可能性很小。

  • 邮件是否被垃圾邮件过滤器过滤?使用带有垃圾邮件文件夹的freemailer开一个帐户,然后查找。另外,请尝试将邮件发送到没有垃圾邮件过滤器的地址。

  • 您是否可能需要mail()的第五个参数“ -f”添加发件人地址?(请参阅PHP手册中的mail()命令)

  • 如果您有权访问日志文件,请按照上面的建议进行检查。

  • 您是否检查“发件人:”地址中是否存在退回邮件(“退回发件人”)?您也可以设置一个单独的“ errors-to”地址。


查看完整回答
反对 回复 2019-11-19
?
德玛西亚99

在Myles之后,如果您使用的是Linux,请在命令行上执行以下操作:


# echo “Body text.” | mail -s “Hello world” you@example.com

如果您没有收到该电子邮件,则说明该盒子上的邮件系统有问题。这是与您提出的PHP问题不同的问题。


查看完整回答
反对 回复 2019-11-19
?
一只斗牛犬

从PHP手册中:


Return Values


Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.


It is important to note that just because the mail was accepted for delivery, **it 

does NOT mean the mail will actually reach the intended destination**.

不确定如何进行下一步,但这是这里的重点。


查看完整回答
反对 回复 2019-11-19

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信