我有下一个代码:
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) mail函数返回true
4)在垃圾邮件箱中找不到邮件
5)我像他们说的那样提供标题
6)我没有headers语法错误
7)请勿发送到多个账号
8)我在支持邮件的主机服务器上试了试,但没有工作,我在我的本地主机上试了试,我按照你说的设置了php和sendmail .ini文件,仍然不能工作……
发布于 2015-05-18 19:21:12
发生的事情是,你没有在你的php配置中配置一个实时邮件服务器,php mail()函数将邮件转发到本地服务器,所以它将返回TRUE,但发送邮件或不发送邮件是邮件服务器的工作,如果你的邮件服务器是公共邮件服务器,那么它将发送邮件,否则它将死于本地系统本身。
我希望这对你有帮助
https://stackoverflow.com/questions/30301692
复制相似问题