在一个邮件服务器上,我注意到一个消息传递错误:
未投递的邮件退回给发件人
SMTPUTF8 是必需的,但主机未提供
就我而言,发生错误的原因是邮件服务器接受了非常旧版本的信件并且不支持 SMTPUTF8,默认情况下,在较新的 Postfix 版本(> 3.0)中启用了 SMTPUTF8。如 RFC 6531(SMTPUTF8 扩展)、RFC 6532(国际化电子邮件标头)、RFC 6533(国际化传递状态通知)中所定义。
让我们看看当前的 Postfix 版本:
postconf mail_version postconf -d | grep mail_version
您可以通过在 /etc/postfix/main.cf 文件中指定来禁用 SMTPUTF8:
smtputf8_enable = no
要应用更改,请运行以下命令:
postfix reload
如果 /etc/postfix/main.cf 配置文件中不存在 smtputf8_enable 选项并且 Postfix 比 3.0 更新,则默认启用 SMTPUTF8。就个人而言,我在邮件服务器上启用了 SMTPUTF8。
此外,如果错误发生在本地服务器上,例如:
需要 SMTPUTF8,但主机 127.0.0.1 未提供,
那么这可能意味着例如 SMTPUTF8 在 Postfix 中启用但在 Amavis 中禁用。
当然奥奥是在 /etc/postfix/main.cf 添加以下代码:
smtputf8_autodetect_classes = sendmail, verifysmtputf8_enable = no strict_smtputf8 = no
然后重启服务:
systemctl restart postfix.service
查看日志:/var/log/maillog 看到这个250OK 就是发送成功了!
我是Centos8的宝塔,默认
Postfix SMTPUTF8 版本是 3.5.8