PHP邮件功能不发送

时间:2011-11-20 19:15:45

标签: php email

出于某种原因,我的PHP邮件没有发送。

这是我的剧本:

$tom = $email;
$subjm = 'Company: Forgotten password';
$msgm = "-- DO NOT REPLY TO THIS EMAIL --\nHi,\nYou have forgotten your password.\nHereby we want to supply a you a new one.\nNew password: $pass";
$msgm = wordwrap($msgm, 70);
$mail_sent = @mail($tom, $subjm, $msgm);
echo "$tom <br /> $subjm <br /> $msgm";
echo $mail_sent ? "Mail sent" : "Mail failed";
echo "<br />Your new password has been sent to the email you've signed up with.<br />If you can't find the email, please wait a few minutes or check your spam box.";

然而,它总是给我“邮件失败”,我在邮箱中看不到它。我已经检查过我的脚本($email)是否正在生成正确的电子邮件地址。所以我很遗憾它为什么不发送。

2 个答案:

答案 0 :(得分:2)

您需要提供from地址才能符合RFC。此外,mail的返回值不会告诉您邮件是否已发送。它只会告诉您底层邮件服务器是否接受了邮件。

更优雅的方式是不仅使用本地sendmail发送邮件,而且可以通过任何SMTP服务器查看phpmailer

答案 1 :(得分:1)

作为评论的后续内容,我联系了我的虚拟主机。他们告诉我,我无法使用邮件功能向不在域中的收件人发送电子邮件。我正在和他们一起解决这个问题。

编辑:

我需要添加一个From:,而From的电子邮件地址应该是@mydomain.com地址,而不是外部地址。它现在有效。