設定 Postfix 和 Dovecot-LMTP 透過 SMTPUTF8 接收郵件?

設定 Postfix 和 Dovecot-LMTP 透過 SMTPUTF8 接收郵件?

我正在運行一個 Postfix 伺服器,它使用 Dovecot LMTP 進行郵件傳遞。我這樣做是因為它與篩子配合得很好。

然而,我最近收到了一些主題行中帶有 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

相關部分是「只有當... [訊息中沒有 UTF8] 時,Postfix 才會將 ... 傳遞到非 SMTPUTF8 ... LMTP 伺服器」。

這雖然措辭笨拙,但其含義是,如果 Postfix 支援 UTF8,則它只會將 UTF8 郵件傳遞到下游伺服器。

因為我收到 UTF8 郵件,Postfix 拒絕將其傳送到 Dovecot LMTP。

這讓我想到幾個問題:

答案1

長話短說:參見Summing up

我也經常收到UTF-8帶有字元的電子郵件Subject:。到目前為止,從未在其他標頭中出現任何情況。

雖然我不知道 postfix 中的「軟失敗」模式,但您可以設定另一個 smtp 傳輸並過濾通過它的反彈作為故障安全模式。但是,我自己還沒有完成這個設定。截至目前,退回郵件一直在佇列中,因為在到期之前無法投遞。至少它們不只是返回給發件人,而且我還關注隊列中的黏性成員。另一方面,我不願意在這條路上走得更遠,因為下面的方法對我有用(tm):

UTF-8工作解決方案(僅在字元的情況下Subject:)就是停用後綴'smtputf8_enable現在預設為「yes」的功能(即使用最新的 debian)。在main.cf中新增:

smtputf8_enable = no

擺弄也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-4月/115430.html)。

加起來:今天,如果您不需要SMTPUTF8標頭以外的標頭支持Subject:,您可能只需smtputf8_enable在 postfix' main.cf 中停用並保持原樣的快樂。

華泰

相關內容