如何防止 SMTPUTF8 电子邮件被退回

如何防止 SMTPUTF8 电子邮件被退回

将 postfix 更新至 3.0 后,主题中含有 UTF-8 字符的电子邮件会卡在队列中,并出现以下错误:

SMTPUTF8 是必需的,但主机 mail.example.com 未提供 [1.2.3.4]

接收服务器(此处称为 mail.example.com)是后缀 2.10.1,并且不支持 SMTPUTF8

我如何让 postfix 发送这些电子邮件?我可以更改 postfix 中的一些选项,以便它像更新前一样发送吗?

从我目前的选择来看,有趣的似乎是:

compatibility_level = 2
smtputf8_autodetect_classes = sendmail, verify
smtputf8_enable = ${{$compatibility_level} < {1} ? {no} : {yes}}
strict_smtputf8 = no

我认为所有这些设置在 3.0 中都是默认设置

答案1

根据后缀自述文件:

默认情况下,Postfix 仅在地址验证探测和发件人地址中包含 UTF-8、收件人地址中包含 UTF-8 或邮件标头值中包含 UTF-8 的 Postfix sendmail 提交上设置“SMTPUTF8 请求”标志。

如果您通过 sendmail 命令提交邮件或使用地址验证,您可能需要调整smtputf8_autodetect_classes选项。

要成功刷新队列,在更正smtputf8_autodetect_classes选项后,必须使用postsuper -r ALL命令重新对所有邮件进行排队。smtputf8可能还需要暂时禁用功能(请参阅评论中的讨论)。

答案2

今天早上我遇到了这个错误。

  • 当使用“php”发送电子邮件时,我收到:
X-Postfix; SMTPUTF8 is required, but was not offered by host
    mx-aol.mail.gm0.yahoodns.net[67.195.204.80]
  • 当使用适当的邮寄程序将电子邮件发送到同一地址时,就会收到邮件。

因此,我没有修复“postfix”,而是修复了 phpmail()命令。

这对我有用,希望这对某人有帮助。

                mail (  // $to =
                        $row["email"],
                        // $subject =
                        "Email subject here",
                        // $message =
                        quoted_printable_encode ("Bonjour,\r\n\r\nBlah blah - Sentiments distingués ... etc. "),

// $headers =
                        'From: ****@example.com' . "\r\n" .
                        'Reply-To: *******@example.com' . "\r\n" .
                        'Content-Type: text/plain; charset=UTF-8' . "\r\n" .
                        'Content-Transfer-Encoding: quoted-printable' . "\r\n" .  // <--- this is THE part.
                        'X-Mailer: PHP/example.com');

相关内容