几天前,我升级了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”地址......
答案 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标题。