2

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

4

3 回答 3

1

不知道如何添加“to”标头,也无法理解“to”如何丢失但电子邮件到达正确的“to”地址...

这条线负责

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

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

于 2011-06-30T08:54:02.893 回答
1

没有“To:”标头的邮件很容易发送,因为这里实际上发生了两件事。“收件人:”标题实际上只有人类才能看到 - 实际交付由所谓的“信封”控制。当您在普通邮件中发送邮件时,它会启动 SMTP 转换,在该转换中,它会获取“To”标头、“CC”标头和“BCC”中列出的地址,去掉 BCC 标头,然后告诉SMTP 接收者“RCPT TO: address1, address2, ...”并且 SMTP 接收者无需查看标头就知道将其发送给谁。它只查看标头进行垃圾邮件检查,因为缺少 To 标头的邮件通常表示垃圾邮件。

如果邮件传输代理无法访问这样的信封,但最终用户及其邮件用户代理无法访问,则无法使用密件抄送。

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

于 2010-04-05T16:31:52.907 回答
1

上一个答案的几个要点:

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

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

  • 邮件是否被垃圾邮件过滤器过滤?使用具有垃圾邮件文件夹的免费邮件程序打开一个帐户并找出答案。此外,请尝试将邮件发送到完全不过滤垃圾邮件的地址。

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

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

  • 您是否检查“发件人:”地址是否有可能的退回邮件(“退回给发件人”)?您还可以设置一个单独的“出错地址”。
于 2010-04-05T16:34:46.697 回答