我已经成功地使用PHP的mail()函数发送邮件,并且为了我的密码重置通知电子邮件,我复制了我在其他地方使用的语法,但是我想我搞砸了,因为它没有到达目的地。这里是我使用的代码:PHP邮件没有发送 - 标头设置不正确?
$headers = 'To:'.$email."\r\n";
$headers .= 'From: [email protected]'."\r\n";
$to = $email."\r\n";
$subject = 'AromaClear Password Reset Notification'. "\r\n";
$msg = 'From: AromaClear'."\r\n";
$msg .='Subject: Your New Password'. "\r\n";
$msg .= 'Message: Your new password is '.$newpass."\r\n";
$msg.= 'If you have received this e-mail in error, please ignore it.'. "\r\n";
mail($to, $subject, $msg, $headers);
有什么想法?
我改变了代码,并添加了一个不同的键值对查询字符串取决于成功或失败,它似乎已通过(我也加入了可选的-f参数),但我仍然不收到电子邮件。已经检查过数据库,电子邮件地址和用户名是正确的,因为他们已经进行了数周的测试)。依然没有。奇怪。 – user97410 2009-09-13 18:54:58
然后我的猜测是堆栈里的东西越来越低。你真的需要看看你的系统的邮件日志(通常是/ var/log/mail),看看邮件是否被推送。如果你没有看到你的邮件出现,那么PHP可能被错误地配置为sendmail(而不是指向sendmail所在的位置?)。也许你的sendmail配置错误?也许你的ISP阻止SMTP中继? – 2009-09-13 19:04:53
我已经从同一台服务器成功发送邮件,这是什么让这特别奇怪。事实上,我今天早些时候发过一些邮件,而且我还有另一个脚本可以工作,发送一个大的HTML编码邮件和我在这里发布的原始语法(除了$ msg只是一个巨大的CSS和HTML字符串)。 – user97410 2009-09-13 19:06:21