AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1152427
Accepted
Dr. Gianluigi Zane Zanettini
Dr. Gianluigi Zane Zanettini
Asked: 2024-01-28 17:26:06 +0800 CST2024-01-28 17:26:06 +0800 CST 2024-01-28 17:26:06 +0800 CST

Postfix+Dovecot:命令行中主题中的表情符号中断传递(“需要 SMTPUTF8,但未提供”),适用于 Gmail

  • 772

Tl;dr:如果我向我的 Postfix+Dovecot 服务器发送一封主题包含 UTF-8 字符的电子邮件

  • 来自 Gmail 的电子邮件=> Postfix+Dovecot 正确传送电子邮件
  • 来自邮件的电子邮件(命令行) => Postfix+Dovecot 失败并出现错误SMTPUTF8 is required, but was not offered by host example.com[private/dovecot-lmtp]

smtputf8_enable = no没有什么区别。


我知道Dovecot 还不支持 smtputf8,但我不太确定它的实际含义。

我使用 Postfix、dovecot-lmtp 和 Dovecot 设置 Ubuntu 22.04 系统。一切都按预期工作,我已经在生产中使用它来接收来自 Internet 的电子邮件,但我正在专门使用 smtputf8 测试该问题。

测试 1:从 Gmail 到 Postfix 的电子邮件

作为第一个测试用例,我配置了 Postfix without smtputf8_enable = no。所以这意味着“默认情况下没有更改”=> smtputf8 支持已启用。

从这里,我从外部 Gmail 帐户向我的 Postfix+Dovecot 托管地址发送了一封电子邮件,主题如下:

Hello, this is a test with UTF-8 💞💟❣🧡❤💘💨✡🥙🍠🍭🍂🏵🏹🔭💊⚗

结果:成功!电子邮件一直正确接收。

测试 2:从命令行发送电子邮件到 Postfix

与之前的配置相同。这次我通过 SSH 连接到外部服务器(运行带有 Postfix 的 Ubuntu 22.04),并通过命令行发送电子邮件,如下所示:

echo "Test from $(hostname)" | mail -s "Hello, this is a test with UTF-8 💞💟❣🧡❤💘💨✡🥙🍠🍭🍂🏵🏹🔭💊⚗" -a FROM:[email protected] [email protected]

该主题与 Gmail 中使用的主题完全相同(复制/粘贴)。

结果:失败!Postfix 收到电子邮件,但无法将其发送到 Dovecot:

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

测试 3:从命令行发送电子邮件到 Gmail,转发到 Postfix

好的,让我们从命令行将电子邮件发送到我的外部 Gmail 帐户,然后将其转发到我的 Postfix+Dovecot 托管地址。

结果:成功!看起来 Gmail 从命令行接收我的电子邮件没有问题,然后它发挥了某种魔力,并且转发使其与我的 Postfix+Dovecot 设置兼容。

测试 4:使用 smtputf8_enable = no 从 Gmail 向 Postfix 发送电子邮件

让我们将 postfix 配置更改为:

smtputf8_enable = no

这是大多数教程推荐的。

从这里,我从外部 Gmail 帐户向我的 Postfix+Dovecot 托管地址发送了一封电子邮件,主题如下:

Hello, this is a test with UTF-8 💞💟❣🧡❤💘💨✡🥙🍠🍭🍂🏵🏹🔭💊⚗

结果:成功!我预计它会失败,但它与测试 1 完全没有区别!

测试 5:使用 smtputf8_enable = no 从命令行向 Postfix 发送电子邮件

这失败了,就像测试 2 一样。

email
  • 1 1 个回答
  • 43 Views

1 个回答

  • Voted
  1. Best Answer
    anx
    2024-01-30T00:07:13+08:002024-01-30T00:07:13+08:00

    对于大多数邮件内容,8 位 SMTP 传输不是必需的,因为字符可以用 7 位编码来表示。使用能够对要在其中使用非 ASCII 字符的标头应用有效编码的客户端。在大多数功能齐全的 MUA 中起草消息就可以了,您的 Webmail 界面只是一个示例。打开通过 Gmail 收到的邮件的来源,看看 sch 编码在实践中是什么样子的。

    据我所知,其他两种可能的解决方案的进展都已停滞:

    1. 一段时间以来,人们一直对让 Postfix 应用必要的转换来将 8 位消息中继到 7 位传输感兴趣,但这有点棘手,并且无论如何都无法处理收件人地址本地部分(因为那些不允许 Q/P 编码解决方法) )。
    2. Dovecot 可以通过修补来提供 8 位传输,但存在相当多的边缘情况,我不希望它在很长一段时间内完全准备好生产。

    在那之前,您可能不想在Postfix 中提供 smtputf8,并且受到您使用的邮件客户端功能的限制。

    • 0

相关问题

  • 如何绕过 ISP 的限制性电子邮件政策?

  • SharePoint 传入电子邮件出现“未知别名”错误

  • 电子邮件帐户的角色名称与人名

  • 如何在笔记本电脑上使用 Tobit David?[关闭]

  • 随行人员通过 VPN 连接到 Exchange 2007

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve