0

我的客户托管服务不接受从网站发送的在 FROM 地址开头没有“-f”的电子邮件。这与他们添加的最近传出的垃圾邮件过滤器有关。

官方回应是:

“发件人数据信封”缺少某些元素

我使用 phpmailer,直到现在使用 SMTP 身份验证一切正常。

但是现在使用phpmailer,这不起作用

$mail->From         = 'me@test.com';

也不起作用

$mail->From         = '-f me@test.com';

它显然无效,不是一个好看的电子邮件地址。

我可以让邮件像这样实际发送:

mail('me@test.com', 'the subject', 'the message', null, '-f me@test.com');

但这不是 phpmailer,这是花园的各种 php 功能。所以我试图让 PHPmailer 以某种方式自动将“-f”添加到 FROM。

我应该调整类文件以某种方式解决这个问题吗?卡住!

4

1 回答 1

3

你把你的运输弄混了。-fmail()函数中是传递给底层 sendmail 二进制文件的附加参数,该参数设置消息的信封发件人(正式它后面不应有空格,如-fme@test.com)。但是,当您通过 SMTP 发送时它并不适用,因为您可以使用该Sender属性控制该参数。你应该做这个:

$mail->Sender = 'me@test.com';

如果您使用 SMTP 发送,它将使用它作为信封发件人(作为 SMTPMAIL FROM命令的内容),如果您通过isMail()isSendmail()传输发送,它将通过 -f 属性设置发件人。

还要确保您使用的是来自 GitHub 的最新 PHPMailer。

于 2014-11-24T05:01:40.740 回答