【问题标题】:phpmailer complications for spam filters "-f"垃圾邮件过滤器“-f”的phpmailer并发症
【发布时间】:2014-11-23 23:21:31
【问题描述】:

我的客户托管服务不接受从网站发送的在 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。

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

【问题讨论】:

    标签: php smtp phpmailer email-headers envelope


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 你能指出我在 isMail() 和 isSendmail() 上可以获得的任何文档吗?我一直没有使用这些,但邮件仍然发送 - 不确定这些设置的含义。
    • API 文档是here,但它们并不多——它们比isSMTP() 简单得多,但您可以在源代码herehere 中看到他们都使用 -f 参数和 Sender 属性。
    猜你喜欢
    • 2013-05-11
    • 2020-01-31
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 2010-09-21
    • 2020-09-17
    相关资源
    最近更新 更多