出于某种原因,我的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
)是否正在生成正确的电子邮件地址。所以我很遗憾它为什么不发送。
答案 0 :(得分:2)
您需要提供from
地址才能符合RFC。此外,mail
的返回值不会告诉您邮件是否已发送。它只会告诉您底层邮件服务器是否接受了邮件。
更优雅的方式是不仅使用本地sendmail发送邮件,而且可以通过任何SMTP服务器查看phpmailer。
答案 1 :(得分:1)
作为评论的后续内容,我联系了我的虚拟主机。他们告诉我,我无法使用邮件功能向不在域中的收件人发送电子邮件。我正在和他们一起解决这个问题。
编辑:
我需要添加一个From:,而From的电子邮件地址应该是@mydomain.com地址,而不是外部地址。它现在有效。