2010-04-05 124 views
2

前几天我升级了Php梅勒,现在一些电子邮件提供商我的邮件标记为垃圾邮件。这是我在标记的消息的标题中看到的:Php梅勒问题 - 邮件标记为垃圾邮件 -

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

不知道如何添加“到”页眉和无法理解它是如何可能“到”被失踪,但邮件到达正确的“到”地址...

回答

1

很容易邮件发送时没有“To:”标题,因为实际上这里有两件事。 “To:”标题真的只有人类才能看到 - 实际交付由所谓的“信封”控制。当您以正常的邮件程序发送邮件时,它会启动一个SMTP转换,其中包含“收件人”标题,“CC”标题和“BCC”中列出的地址,剥离BCC标题,并说明SMTP接收方“RCPT TO:address1,address2,...”,SMTP接收方知道发送给谁,而不必查看标题。它仅查看标题以进行垃圾邮件检查,因为缺少To标头的邮件通常表示垃圾邮件。

如果没有可供邮件传输代理访问但不是最终用户及其邮件用户代理的信封,则不可能使用BCC。

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

+0

在Php Mailer中没有这样的函数“to”。这是他们的示例代码: $ mail-> AddReplyTo('[email protected]','First Last'); $ mail-> AddAddress('[email protected]','John Doe'); $ mail-> SetFrom('[email protected]','First Last'); $ mail-> AddReplyTo('[email protected]','First Last'); $ mail-> Subject ='Test'; $ mail-> AltBody ='Alt Body'; $ mail-> MsgHTML(file_get_contents('contents.html')); $ mail-> AddAttachment('images/phpmailer.gif'); //附件 $ mail-> Send(); – user 2010-04-05 16:37:31

1

几个要点从previous answer

  • 最重要的是:是否发件人地址(“发件人”)属于该服务器上运行的域您发送电子邮件?如果没有,就这样做。千万不要使用像[email protected]这样的发件人地址。用户reply-to如果您需要回复才能到达不同的地址。

  • 您的服务器是否在黑名单上(例如,检查spamhaus.org上的IP)?当你在共享主机上时,这是一种可能性,当邻居表现不佳时。

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

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

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

  • 您是否在可能的退回邮件(“退回发件人”)时检查“from:”地址?您还可以设置单独的“错误至”地址。
+0

如果您必须使用虚假的'From:'标题,请添加来自您的域的'Sender:'标题。这是Gmail从头文件中删除的内容。有用。 – TRiG 2010-10-14 10:35:04

1

不知道如何添加“到”页眉和 不明白它是如何可能 说“到”被失踪,但电子邮件到达 正确“到”地址...

这一行需要的是

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

照顾它实际上创造了TO头的电子邮件。