You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Postfix+Dovecot环境下命令行发送含UTF-8/emoji主题邮件投递失败(提示SMTPUTF8 is required, but was not offered),Gmail发送正常的问题求助

Postfix+Dovecot环境下命令行发送含UTF--8/emoji主题邮件投递失败(提示"SMTPUTF8 is required, but was was not offered),Gmail发送正常的问题求助

各位好,我在Ubuntu 22.04上搭建了Postfix + Dovecot(搭配dovecot-lmtp)的邮件服务,日常接收外网邮件都正常,已经投入生产使用了,但最近测试SMTPUTF8相关场景时碰到了奇怪的问题,想请教大家:

当发送**包含UTF--8/emoji主题的邮件时,从Gmail发送能正常投递到我的服务器,但从命令行用mail命令发送就直接失败,报错提示SMTPUTF8 is required, but was not offered by host example.com[private/dovecot-lmtp],而且我设置`smtputf8_enable = no之后也完全没用,完全没改变结果。

我了解Dovecot目前还不支持SMTPUTF8,但不太清楚这在实际场景里具体会有什么影响,所以特意做了下面几组测试,把情况理清楚:

详细测试情况

测试1: Gmail发邮件到Postfix(默认配置,未设置`smtputf8_enable = no)

我用外部GGmail账号给我的服务器地址发了一封主题带大量UTF-8/emoji的邮件:

Hello, this is a test with UTF--8 ���李❤��✡陵����������⚗

**结果:成功!邮件完整收到,主题显示完全正常。

###测试2:命令行发邮件到Postfix(同测试1的默认配置)
我通过SSH登录到另一台Ubuntu 222.04的 Postfix服务器,用下面命令发送邮件:

echo "Test from $(hostname" | mail -s "Hello, this is a test with UTF--8 ����李❤��✡陵�����������" -a FROM:foo@foo.com me@example.com

主题和测试1完全一样(直接复制粘贴的).

**结果:失败! Postfix收到邮件后没办法投递给 Dovecot,日志报错:

postfix/lmtp[31775]: D2E1C475E0: to=<me@example.com>, relay=mailserver.example.com[private/dovecot-lmtp], delay=2.2, delays=2.2/0/00.09/0, dsn=5.6.7, status=bounced (SMTPUTF8 is required, but was not offered by host mailmailserver.example.com[private/dovecot-lmttp])

###测试3:命令命令行发邮件到 Gmail,再转发到我的 Postfix
先把命令行那封问题邮件先发送到我的外部Gmail账号,再从 Gmail转发到我的服务器地址.

**结果:成功!看起来 Gmail接收命令行的邮件完全没问题,转发之后就能正常适配我的 Postfix+Dovecot环境了.

###测试4:Gmail发邮件到 Postfix(设置smtputf8_enable = no) 我修改Postfix配置,设置smtputf8_enable = no(很多教程推荐的设置),然后用GGmail发送和测试1完全一样的邮件.

**结果:成功!完全和测试1没区别,我本来以为会失败,结果完全没变化.

###测试5:命令行发邮件到 Postfix(设置smsmtputf8_enable = no) 用测试2完全相同的命令发送邮件,配置已经改成smtputf8_enable = no.

**结果:失败,和测试2的报错完全完全一样.

有没有大佬能帮我解释下这到底是是怎么回事?为什么GGmail发的就能正常通过,命令行发的就不行?设置`smtputf8_enable =no为什么完全没用?

备注:内容来源于stack exchange,提问作者Dr. Gianlu Zane Zanettini

火山引擎 最新活动