【问题标题】:PHP mail() function not delivering mailPHP mail() 函数不发送邮件
【发布时间】:2011-06-05 15:41:30
【问题描述】:

我有一个小问题。我正在使用一个工作脚本(适用于我的测试帐户 - 共享服务器)使用 mail() 函数通过 PHP 发送邮件。

我刚刚获得了一台专用服务器,但我无法让该功能正常工作。在过去 10 个小时左右的时间里,我阅读了有关 BIND(用于 SPF 记录)、dovecot、sendmail 和 postfix 的各种文档,并尝试了各种方法来使其正常工作。

显然我缺少一些东西。

所以我们知道 PHP 代码可以正常工作。所有的标题都很好。我们知道这是因为它是我的测试帐户的直接副本。所以问题一定出现在服务器配置的某个地方。 sendmail 的路径是正确的,并且 sendmail (显然)工作正常。我已经将脚本设置为现在根据 PHP mail() 函数的布尔结果传递“已发送”或“错误”。那就是:

if(mail($blah,$blah,$blah,$blah,$blah)) { echo "Sent"; } else { echo "Error";}

结果总是显示为“已发送” - 但是,电子邮件永远不会到达。有人可以建议要检查的东西,因为我对此完全陌生(24 小时左右!)。

提前致谢。

瑞恩

【问题讨论】:

  • 您是否检查了收件人电子邮件上的 span 文件夹
  • 您的专用服务器上运行着什么邮件守护进程?
  • John,标签列表 sendmail。

标签: php linux sendmail


【解决方案1】:

你试过mailq command看看有没有错误?这是answer to a similar question on ServerFault 的详细信息。

【讨论】:

  • 大家好 - 感谢您的回复。垃圾邮件过滤器中没有任何内容。我正在运行 sendmail,但我也正在运行 postfix。好的,所以取得了一些进展,当我在 mailq 返回“0”之前输入但现在我输入“mailq -Ac”时出现 8 个错误。
  • 你好,马特。我通过谷歌 smtp 服务器向我的 gmail 帐户发送了一封电子邮件。它通过但最终进入垃圾邮件文件夹,没有发件人等。所以我假设这是一个 SPF 问题是否正确?还是我还缺少其他东西?
  • 按照说明清理了clientmqueue,现在邮件根本不会发送......哦,亲爱的。这真的不好玩!
【解决方案2】:

您是否安装了 SMTP 服务器。除非您安装一个,否则 php 邮件功能将不起作用。比如在linux下,可以安装postfix。 windows下以MS交换为例。

【讨论】:

  • 嗨,Alexandre,是的,postfix 正在运行。我不确定这是否是问题所在。我在 mailq 中收到延迟错误。
猜你喜欢
  • 2014-07-14
  • 1970-01-01
  • 2014-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 2020-03-08
  • 1970-01-01
相关资源
最近更新 更多