PHP mail()函数不起作用,返回没有错误但没有收到邮件

时间:2012-05-26 16:38:36

标签: php macos smtp osx-tiger

在尝试从php脚本发送邮件时,我正在使用以下代码测试mail()函数:

<?php  
ini_set("display_errors", "1");
error_reporting(E_ALL);
$to = 'example@gmail.com';
$message = 'test';
$from = 'test@gmail.com';
$subject = 'Test';
$headers = "From: $from\n";
mail($to, $subject, $message, $headers) or die ("Message not sent");
?>  

这不是我尝试过的唯一代码,但似乎没有任何工作。我在这里询问的原因之一是因为它没有返回任何错误。我没有得到任何错误的迹象,除了邮件永远不会到达它的目的地。 我尝试解决问题的方法:

  1. 将php.ini中的SMTP从localhost更改为gmail的smtp
  2. 检查两端的垃圾邮件过滤器和发件箱
  3. 尝试了各种错误报告方法
  4. 尝试了几种不同的发送邮件功能
  5. 在phpinfo()中查看看似相关的内容并查看它们无济于事
  6. 我认为我的终端中的sendmail功能可能存在问题,但我无法测试或修复与sendmail功能相关的任何问题。

    我在带有OS X 10.4 Tiger和PHP 5.3.12的PPC Mac上运行apache 2.0。

1 个答案:

答案 0 :(得分:1)

php.ini中的SMTP设置仅适用于Windows。在其他系统上,始终使用本地MTA(Sendmail),并且会默默忽略您提供的SMTP设置。如果您想使用Gmail,请确保在MTA中对其进行配置。

检查发送系统上Sendmail的邮件日志。您应该能够在那里找到关于消息传递的提示。