PHPmailer在邮件中发送邮件到垃圾邮件。怎么修? [英] PHPmailer sending mail to spam in hotmail. how to fix?

查看:647
本文介绍了PHPmailer在邮件中发送邮件到垃圾邮件。怎么修?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用phpmailer类发送电子邮件。目前,Gmail和Yahoo不会将电子邮件标记为垃圾邮件,但Hotmail始终如一。我该如何防止这种情况?我的代码在下面。

I'm using the phpmailer class to send emails. Currently gmail and yahoo do not mark emails as spam, but hotmail always does. How can I prevent this? My code is below.

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";


推荐答案

这涉及设置几个邮件头来击败过滤器

This involves setting a few mail headers to beat the filters.

我已经添加了以下内容到php邮件程序的开始CreateHeader方法...

I have added the following to the very start of php mailers CreateHeader method...

$result = '';

$result .= $this->HeaderLine("Organization" , SITE); 
$result .= $this->HeaderLine("Content-Transfer-encoding" , "8bit");
$result .= $this->HeaderLine("Message-ID" , "<".md5(uniqid(time()))."@{$_SERVER['SERVER_NAME']}>");
$result .= $this->HeaderLine("X-MSmail-Priority" , "Normal");
$result .= $this->HeaderLine("X-Mailer" , "Microsoft Office Outlook, Build 11.0.5510");
$result .= $this->HeaderLine("X-MimeOLE" , "Produced By Microsoft MimeOLE V6.00.2800.1441");
$result .= $this->HeaderLine("X-Sender" , $this->Sender);
$result .= $this->HeaderLine("X-AntiAbuse" , "This is a solicited email for - ".SITE." mailing list.");
$result .= $this->HeaderLine("X-AntiAbuse" , "Servername - {$_SERVER['SERVER_NAME']}");
$result .= $this->HeaderLine("X-AntiAbuse" , $this->Sender);

这是在一段时间以前完成的 - 我没有重新考虑大约一年的时间我想!如果您仍然遇到问题,请尝试再回来。

that was done some time ago - I haven't revisited for about a year I think! Try it and come back if you still have problems.

这篇关于PHPmailer在邮件中发送邮件到垃圾邮件。怎么修?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆