首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP mail()函数,返回true但不发送任何邮件

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

Stack Overflow用户
提问于 2015-05-18 19:12:53
回答 1查看 1.9K关注 0票数 0

我有下一个代码:

代码语言:javascript
复制
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>";
 }

我试着发送这样的信息:

代码语言:javascript
复制
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是

代码语言:javascript
复制
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

我的sendmail.ini是:

代码语言:javascript
复制
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) mail函数返回true

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

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

6)我没有headers语法错误

7)请勿发送到多个账号

8)我在支持邮件的主机服务器上试了试,但没有工作,我在我的本地主机上试了试,我按照你说的设置了php和sendmail .ini文件,仍然不能工作……

EN

回答 1

Stack Overflow用户

发布于 2015-05-18 19:21:12

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

我希望这对你有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30301692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档