PHP 邮件停止工作

标签 php email

几天前,当我使用 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 文件中测试了代码,结果相同。我该如何调试这个问题?

最佳答案

会不会是电子邮件发送正常,但被垃圾邮件过滤器拦截了? 如果可以的话,请允许我cross-post myself :


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

  • 发件人地址(“发件人”)是否属于您服务器上的域?如果没有,就让它成为现实。
  • 您的服务器是否在黑名单中(例如检查 spamhaus.org 上的 IP)?这是共享主机的一个遥远的可能性。
  • 邮件是否被垃圾邮件过滤器过滤?在有垃圾邮件文件夹的免费邮寄者处开设一个帐户并找出答案。另外,尝试将邮件发送到没有垃圾邮件过滤器的地址。
  • 您可能需要 mail() 的第五个参数“-f”来添加发件人地址吗? (请参阅 PHP 手册中的 mail() 命令)
  • 如果您有权访问日志文件,当然要按照上面的建议进行检查。
  • 您是否检查“发件人:”地址是否存在可能的退回邮件(“退回给发件人”)?您还可以设置一个单独的“错误地址”。

对于讲德语的人,我前段时间就这个问题写了一篇相当详尽的“该怎么做”。参见 here .

关于PHP 邮件停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1892409/

相关文章:

php - MYSQL 添加匹配日期的行

php - 通过 PHP 或任何其他脚本创建电子邮件地址

发送邮件时来自字段的 PHP()

带有附件的 C# MailMessage 破坏了主题编码

c - 通过 libCurl 发送电子邮件 (C)

php - 如何将不同的主机条目放在同一个 linux 服务器上,用于不同的虚拟主机?

php - 我应该为多语言网站设置哪些 http header ?

php - 使用 codeigniter 的 payfast 支付网关集成

php - sms api 无法在本地计算机中工作,但如果放置在托管服务器中则可以工作

email - 使用 AWS 设置域和电子邮件地址