Php Mailer问题 - 标记为垃圾邮件的邮件 -

时间:2010-04-05 16:17:47

标签: php header spam mailer

几天前,我升级了Php Mailer,现在有些电子邮件提供商将我的邮件标记为垃圾邮件。这是我在标记消息的标题中看到的内容:

X-SpamTest-Info: {TO: header missing}

这是我的php文件。

$mail->From       = $sender;
$mail->FromName   = $sender_name;
$mail->Subject    = $subject;
$mail->Body       = $body;
$mail->AddAddress($recipient,$recipient_name);
$mail->AddReplyTo($replyto,"No-Reply");

不知道如何添加“to”标题,并且无法理解“to”可能会丢失但是电子邮件到达正确的“to”地址......

3 个答案:

答案 0 :(得分:1)

在没有“To:”标题的情况下发送邮件很容易,因为这里实际上有两件事情。 “To:”标题实际上只供人类查看 - 实际的传递由所谓的“信封”控制。当您在普通邮件程序中发送邮件时,它会启动SMTP转换,其中它采用“To”标题,“CC”标题和“BCC”中列出的地址,剥离BCC标题,并且它说SMTP接收器“RCPT TO:address1,address2,...”和SMTP接收器知道将其发送给谁而不查看标头。它只查看标题来进行垃圾邮件检查,因为丢失的邮件To标题通常表示垃圾邮件。

如果邮件传输代理无法访问此类信封,但最终用户及其邮件用户代理无法访问,则无法使用BCC。

我不知道PHP Mailer的语法,但它是否支持“$ mail-> To”设置?

答案 1 :(得分:1)

来自previous answer的几个要点:

  • 最重要的是:发件人地址(“发件人”)是否属于您从发送电子邮件的服务器上运行的域?如果没有,那就这样吧。切勿使用xxx@gmail.com之类的发件人地址。用户reply-to如果您需要回复来到不同的地址。

  • 您的服务器是否在黑名单中(例如,检查spamhaus.org上的IP)?当邻居表现不佳时,您可以使用共享主机。

  • 邮件是否通过垃圾邮件过滤器进行过滤?使用具有垃圾邮件文件夹的freemailer打开一个帐户并查找。此外,尝试将邮件发送到地址而不进行任何垃圾邮件过滤。

  • 您是否可能需要mail()的第五个参数“-f”来添加发件人地址? (参见PHP手册中的mail()命令)

  • 如果您有权访问日志文件,请检查这些文件。

  • 您是否检查了“发件人:”地址是否有可能的退回邮件(“退回发件人”)?您还可以设置单独的“错误到”地址。

答案 2 :(得分:1)

  

不知道如何添加“to”标题和   无法理解它是如何可能的   “to”丢失,但电子邮件到达   到正确的“到”地址...

这一行负责

$mail->AddAddress($recipient,$recipient_name);

它实际上为电子邮件创建了TO标题。