8 smtp unicode postfix dovecot
我正在运行使用 Dovecot LMTP 进行邮件传递的 Postfix 服务器。我这样做是因为它与筛子配合得很好。
但是,我最近收到了一些主题行中带有 Unicode 的电子邮件。
这封邮件被 Postfix 接收正常,它显然支持 SMTPUTF8 - 但是,当它到达 LMTP 时它就死了:
<me@myhost> (expanded from <meother@mhost>): SMTPUTF8 is required, but
was not offered by host myhost[public/lmtp]
我在 Postfix SMTPUTF8 文档中读到,
当收到带有 SMTPUTF8 请求的消息时,仅在以下情况下,Postfix 才会将消息传送到非 SMTPUTF8 SMTP 或 LMTP 服务器:
没有消息头值包含 UTF-8。
信封发件人地址不包含 UTF-8,
该特定 SMTP/LMTP 传送事务的信封收件人地址不包含 UTF-8。
注意:同一消息的其他电子邮件传送事务中的收件人可能仍包含 UTF-8。
否则,Postfix 会将邮件投递交易的收件人视为无法投递。传递状态通知消息将是 SMTPUTF8 消息。因此,它将受到与通过 SMTPUTF8 请求接收的电子邮件相同的限制。
-- http://www.postfix.org/SMTPUTF8_README.html#detecting
相关部分是“Postfix 将交付...到非 SMTPUTF8 ... LMTP 服务器,仅当... [消息中没有 UTF8]”。
这措辞笨拙,但暗示 Postfix 只会将 UTF8 邮件传递到支持 UTF8 的下游服务器。
因为我正在接收 UTF8 邮件,Postfix 拒绝将其发送到 Dovecot LMTP。
这给我带来了几个问题:
TL;DR:看Summing up
!
我也经常收到带有UTF-8
字符的电子邮件Subject:
。到目前为止,从未在其他标头中出现任何情况。
虽然我不知道 postfix 中的“软失败”模式,但您可以设置另一个 smtp 传输并过滤通过它的反弹作为一种故障安全模式。但是,我自己还没有完成这个设置。截至目前,退回邮件一直在队列中,因为在到期之前无法投递。至少它们不只是返回给发件人,而且我还关注队列中的粘性成员。另一方面,我不愿意在这条路上走得更远,因为下面的方法对我有用(tm):
UTF-8
可行的解决方案(仅在字符的情况下Subject:
)是禁用postfix 的smtputf8_enable
功能,该功能现在默认为“yes”(即使用最新的 debian)。在main.cf中添加:
smtputf8_enable = no
Run Code Online (Sandbox Code Playgroud)
摆弄也smtputf8_autodetect_classes
没有结果。
包含该行的电子邮件消息UTF-8
Subject:
现在正在由 postfix 处理并由 dovecot 保存,没有任何问题。
该解决方案可能看起来违反直觉,特别是对于措辞稍显尴尬的后缀文档(正如您已经提到的)。
关于 dovecot 支持的最新更新SMTPUTF8
似乎就是您所引用的更新。我记得在其他地方看到过一篇文章,SMTPUTF8
如果有的话,鸽舍不会很快实施[需要引用]。不知道这是否是一个权威的说法。
关于 dovecot 的另一条评论SMTPUTF8
可以在这里找到(包括您的参考资料和这个 SE 问题):https://dovecot.org/list/dovecot/2016-November/106029.html
与下一篇文章一起,该主题似乎停滞在大约2016 年底:https://dovecot.org/list/dovecot/2016-September/105474.html
截至 2022 年 10 月,仍然没有迹象表明 dovecot LDA/LMTP 会很快支持 SMTPUTF8。但是,现在正在使用 dovecot bug 跟踪器 ID“DOP-1045”跟踪此问题(参见 https://dovecot.org/list/dovecot/2019-April/115430.html)。
总结:今天,如果您不需要标头SMTPUTF8
以外的标头支持Subject:
,您可能只需在 postfix 的 main.cf 中禁用smtputf8_enable
即可,并且按原样感到高兴。
华泰
归档时间: |
|
查看次数: |
3834 次 |
最近记录: |