![修復 Exim ACL 中損壞的 Message-ID 字段](https://rvso.com/image/760607/%E4%BF%AE%E5%BE%A9%20Exim%20ACL%20%E4%B8%AD%E6%90%8D%E5%A3%9E%E7%9A%84%20Message-ID%20%E5%AD%97%E6%AE%B5.png)
奇怪的是,我的一些郵件網域外部寄件者過去常常向我們發送訊息,其中 Message-ID 欄位設定$Null
如下:
...
Date: Tue, 1 Dec 2020 07:16:22 +0000
Message-ID: $Null
Subject: Test
...
(看起來這是由於他們公司使用了 Exchange + Outlook 設置,但找不到更多資訊)。
直到最近,這還是一個小問題,因為蘋果更新了 iOS 郵件用戶端,而 iOS 中最近的郵件應用程式在嘗試分析此類訊息時弄亂了所有訊息清單。
我嘗試實現的修復很簡單,我嘗試將此操作添加到 Exim 中acl_check_data
:
warn
condition = ${if eq{$h_message-id:}{\$Null}}
remove_header = message-id : message_id : Message-ID : Message_ID
我嘗試了多種引用 Message-ID 標題行的方法,但即使該條件產生true
「刪除標題」操作也不會刪除 Message-ID 標題行。
所以請指教,如何刪除或(更好)用一些正確的值替換 Message-ID 的損壞標題行?
答案1
抱歉,我對Exim不太熟悉,不過,我在Exim中找到了一個關於message-id的文檔供您參考,請檢查它是否對您有幫助:訊息處理( The Message-ID: header line
)
您是否為您的帳戶部署了 Exchange 伺服器?如果是這樣,您可以建立一條傳輸規則,根據條件修改訊息標頭中的 message-id: