【问题标题】:PHPmailer sending mail to spam in hotmail. how to fix?PHPmailer 将邮件发送到 hotmail 中的垃圾邮件。怎么修?
【发布时间】: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 共享的服务器
  • FromAddReplyTo 应该是不同的地址还是拼写错误?如果您的实际代码中有此内容,则可能会导致邮件被过滤为垃圾邮件。
  • 你在 20 分钟前修复了这个问题,它似乎正在工作。我花了 3 个小时才意识到这个错误哇...

标签: php email phpmailer spam hotmail


【解决方案1】:

这涉及设置一些邮件标头以击败过滤器。

我在 php mailers CreateHeader 方法的最开始添加了以下内容...

$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);

那是前段时间完成的 - 我想我已经有大约一年没有重新访问了!如果仍有问题,请尝试并返回。

【讨论】:

  • 如果你能接受我的回答,我会欣喜若狂! (当您接受答案时,人们会喜欢它 - 他们会获得荣誉,而您会获得更好的声誉)
  • @TuralTeyyuboglu 哎呀我的坏 - sowwie
  • @IanWood 我正在寻找发给 gmail 的电子邮件。我的对hotmail已经很好了。无论如何+1的标题。不知道我们能做到这一点
  • Outlook 有一种非常特殊的方式为电子邮件构建 html,很容易查看电子邮件是否由另一个电子邮件客户端的 html 编写器编写。被 Forged_Mua_Outlook 垃圾邮件规则抓住会杀死你的 IP。风险很大。
  • 很有可能——我不自称知道电子邮件/ips 被阻止的内部细节。这个“解决方案”是有机的,我有理由不时进行调整,但原则只是找到能够完成工作的价值观。我将来会删除任何前景参考。
猜你喜欢
  • 2020-09-17
  • 1970-01-01
  • 2013-01-27
  • 2013-05-29
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
  • 2012-07-21
相关资源
最近更新 更多