【发布时间】:2016-09-12 19:38:44
【问题描述】:
我正在使用 phpmailer 类发送电子邮件。目前 gmail 和 yahoo 不会将电子邮件标记为垃圾邮件,但 hotmail 总是这样做。我怎样才能防止这种情况?我的代码如下。
require_once('../PHPMailer/class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
$mail = new PHPMailer();
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "mail.example.com"; // specify main and backup server
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "xxx"; // SMTP username -- CHANGE --
$mail->Password = "xxx"; // SMTP password -- CHANGE --
$mail->Port = "25"; // SMTP Port
$mail->From = "no-repy@example.com"; //From Address -- CHANGE --
$mail->FromName = "xxx"; //From Name -- CHANGE --
$mail->AddAddress($email, $passerusername); //To Address -- CHANGE --
$mail->AddReplyTo("no-reply@example.com", "xxx"); //Reply-To Address -- CHANGE --
$mail->WordWrap = 50; // set word wrap to 50 characters
$mail->IsHTML(false); // set email format to HTML
$mail->Subject = "AuthSMTP Test";
$mail->Body = "AuthSMTP Test Message!";
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
【问题讨论】:
-
可能是服务器 SPF 记录、反向 DNS 等。 (我知道不是很有帮助,但这就是为什么它是评论!)
-
如果有帮助,我会使用 vps 服务器,而不是与 hostgator 共享的服务器
-
From和AddReplyTo应该是不同的地址还是拼写错误?如果您的实际代码中有此内容,则可能会导致邮件被过滤为垃圾邮件。 -
你在 20 分钟前修复了这个问题,它似乎正在工作。我花了 3 个小时才意识到这个错误哇...
标签: php email phpmailer spam hotmail