PHP mail()函数,返回true但不发送任何邮件

时间:2015-05-18 11:12:53

标签: php email sendmail

我有下一个代码:

if (!mail($_POST['mail'], $text['EMAIL_RECOVER_MSG_SUBJECT'], $text['EMAIL_RECOVER_MSG'], $from)) {
    $msg = $text['MAIL_ERROR'];
    $msgDisplay = 'inline';
  }else {
    $recover = false;
    echo "<div class='alert alert-success'> {$text['RECOVER_MAIL_SENT']}</div>";
 }

我尝试发送此消息:

nati323@gmail.com
Password Recover: From dmworld24.com
You Forget Your Password To Recover it Please Go Into The Next Link:\r\n http://dmworld24.com/login.php?act=rec&token=11674209834514531801839026455 \r\n If You Didnt Ask For Password Recovering Just Ignore This Message
From: system@dmworld24.com

代码总是显示成功消息,并且邮件功能返回true,但我不在我邮箱中的任何邮件(而不是垃圾邮件),我使用xampp,而我的php.ini是

sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

我的sendmail.ini是:

smtp_server=smtp.gmail.com
error_logfile=error.log
debug_logfile=debug.log
auth_username=nati323@gmail.com
auth_password=*****
force_sender=nati323@gmail.com

为什么它不起作用?我在哪里可以看到邮件日志文件的检查错误?

有人将我的问题标记为重复,并提供了相关链接:PHP mail form doesn't complete sending e-mail 所以我检查他们在那里说的一切,

1)我的错误报告设置为-1,错误显示设置为开。

2)你可以看到我的评论,我没有任何日志文件。

3)邮件功能返回true

4)邮件在垃圾邮件箱中找不到

5)我提供标题就像他们说那样

6)我没有标题语法错误

7)不要发送到多个帐户

8)我尝试了支持邮件的主机服务器,并且没有工作,我尝试在我的localhost上设置了php&amp;像你告诉我的sendmail .ini文件,仍然没有工作......

1 个答案:

答案 0 :(得分:0)

发生的事情是您没有在php配置中配置实时邮件服务器,php mail()函数将邮件转发到本地服务器,因此它将返回TRUE但它是邮件服务器的工作是否发送邮件,如果您的邮件服务器是公共邮件服务器,那么它将发送邮件,否则它将在本地系统本身死亡。

我希望这有助于你