2011-11-20 127 views
0

由于某种原因,我的PHP邮件没有发送。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

这完全取决于您使用的底层SMTP设置或您的服务器提供给PHP(即sendmail或qmail等)。 –

+2

'mail'通常使用服务器的内置邮件服务,sendmail。如果您从本地测试机发送电子邮件,并且它在Windows上 - 那么您需要先设置邮件服务器。 – Furicane

+0

你用什么SMTP服务器?上面没有看到任何身份验证信息。你使用PHP或Pear的Mail类吗? – user978122

回答

1

作为意见的后续行动,我联系了我的虚拟主机。他们告诉我,我无法使用邮件功能将电子邮件发送给不在域中的收件人。我正在与他们解决问题。

编辑:

我需要添加一个发件人:和从应该是一个@ mydomain.com地址,而不是外部的的emailadress。它现在有效。

+0

正是我告诉你:) – halfdan

2

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

要更好地发送邮件,不仅可以使用本地sendmail,也可以使用任何SMTP服务器查看phpmailer