一尘不染

PHP邮件停止工作

php

几天前使用mail()时,它已经正常工作了。

但是现在不起作用了。而且我不知道问题出在哪里。

$to      = 'testmail@gmail.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: sender@gmail.com' . "\r\n" .
    'Reply-To: sender@gmail.com' . "\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文件中测试了代码,结果相同。如何调试此问题?


阅读 252

收藏
2020-05-29

共1个答案

一尘不染

可能是电子邮件发送正常,但被垃圾邮件过滤器捕获了吗?如果可以的话,请允许我交叉发表自己的看法:


一些要点(假设mail()返回true,并且错误日志中没有错误):

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