前几天使用的时候mail()
我让它工作了。
但现在不行了。而且我不知道问题是什么。
$to = '[email protected] /cdn-cgi/l/email-protection';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected] /cdn-cgi/l/email-protection' . "\r\n" .
'Reply-To: [email protected] /cdn-cgi/l/email-protection' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
$mail_sent = @mail( $to, $subject, $message, $headers );
echo $mail_sent ? "Mail sent" : "Mail failed";
它显示“邮件已发送”。
我没有接触过 Apache 或这段代码中的任何内容。我已经在空 PHP 文件中测试了代码,结果相同。我该如何调试这个问题?
是否有可能电子邮件发送正常,但被垃圾邮件过滤器捕获?
如果可以的话,请允许我交叉发布我自己 https://stackoverflow.com/questions/1658043/troubleshooting-php-mail/1658064#1658064:
一些要点(假设 mail() 返回 true 并且错误日志中没有错误):
- 发件人地址(“发件人”)是否属于您服务器上的域?如果没有,那就这样吧。
- 您的服务器是否在黑名单中(例如在 spamhaus.org 上检查 IP)?这是共享托管的远程可能性。
- 邮件是否被垃圾邮件过滤器过滤?使用具有垃圾邮件文件夹的免费邮件程序开设帐户并找出答案。另外,尝试将邮件发送到没有垃圾邮件过滤器的地址。
- 您是否可能需要 mail() 的第五个参数“-f”来添加发件人地址? (参见 PHP 手册中的 mail() 命令)
- 如果您有权访问日志文件,当然请按照上面的建议检查这些文件。
- 您是否检查“发件人:”地址以查找可能的退回邮件(“退回发件人”)?您还可以设置单独的“错误至”地址。
对于德语使用者,我不久前就这个问题写了一篇相当详尽的“该怎么办”。看here http://www.php-resource.de/forum/php-developer-forum/68042-bei-problem-mails-kommen-nicht.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)