我的托管服务的客户不接受从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。
我应该调整类文件以某种方式解决这个问题吗?卡住!
答案 0 :(得分:2)
你的运输混乱了。 -f
函数中的mail()
是传递给底层sendmail二进制文件的附加参数,用于设置邮件的信封发件人(正式后它不应该有空格,如-fme@test.com
) 。但是,当您通过SMTP发送时,它不适用,因为您可以使用Sender
属性控制该参数。你应该这样做:
$mail->Sender = 'me@test.com';
如果您使用SMTP发送,它将使用它作为信封发件人(作为SMTP MAIL FROM
命令的内容),如果您通过isMail()
或isSendmail()
传输发送,将通过-f属性设置发件人。
另外请确保您使用的是GitHub中最新的PHPMailer。