如果傳入郵件的 RFC 822 片語包含特殊字元,則不會將其放在引號中
我在 Stackoverflow 上問過這個問題;我被要求在 serverfault 上重複一遍。請注意,我主要是一名 Domino 開發人員;我對 Domino 和其他伺服器系統的管理方面的知識有些有限,所以請耐心等待 ;)
首先:涉及的軟體是Domino 9.0.1 server,Notes 9.0.1 Standard Client,以及發送方的Exchange server(目前版本未知)
一位客戶的名字包含特殊的德語字元(“ß”),並且他還帶著一個“博士”。作為標題。在他公司的 MS Exchange 系統中,他註冊了他的全名(我稱他為“Walter Weiß 博士”);他的郵件使用以下模式發送:
Weiß, Rupert, Dr. <Rupert.Weiss@somecompany.de>
如果我們的 Domino 伺服器從他作為發件人的那家公司接收郵件,或者郵件的 COPYTO 欄位中的一個成員接收到他的姓名的 RFC 822 片語部分,則發送時不帶引號,如上所示。
如果現在我回复那些郵件,Notes 顯然將這個片語分成三個不同的名稱:和
Rupert
,完全按照這個順序。接下來發生的事情是,我的郵件客戶端顯然現在正在所有已註冊的通訊簿中搜尋可能會導致有效郵件地址的名稱和. 不幸的是,在其中一個目錄中有一個叫 的人,她被探勘出來解析了這個名字(同樣,為了保護無辜者,名字已經改變,但請注意 Ruppert 女士的姓氏和 Weiß 先生的名字之間的拼寫略有不同…)在一家完全不同的公司工作,當然這種情況經常發生,我們公司的某個人沒有意識到這一點,而是把東西寄給了錯誤的人。Dr. <Rupert.Weiss@somecompany.de>``Weiß``Weiß``Rupert``Marianne Ruppert``Rupert
我們向 Google 詢問了這一點,並發現了一些關於 Exchange 伺服器更新檔的提示以及可以在我們的接收 Domino 伺服器上設置的一些標誌 (
RFC822StripUnquotedDelimiters=1
)。我們這邊的標誌已設置(Domino 目錄 >> 配置設置 >> 接收伺服器的 NOTES.INI 設置),但對於包含特殊字元的名稱沒有任何明顯影響。客戶的管理員並不認為這是他們的問題,因為我們似乎是唯一報告該問題的人。接下來我寫了一些“在新郵件到達之前”類型的 LotusScript 代理來查找未引用的名稱並為我修復它們。這似乎已經解決了一年多的問題,我已經考慮在我們所有的本地郵件文件中實現該代理。但是上週我不在辦公室時收到了我們客戶的更多郵件,突然代理不再工作了,可能是因為我正在復製到本地副本。對我來說沒有任何意義,但這就是發生的事情。
所以我的問題是: - 這是一個已知的場景,是否有一些補救措施,最好是在伺服器上而不是在單個郵件文件中?- 是否至少有某種方法可以防止郵件的重新計算程式碼得出的結果拼寫與查找的名稱不完全相同?我們可以讓這項服務對拼寫錯誤的容忍度降低嗎?
編輯:
我剛剛從我們的一位管理員那裡聽說,如果接收名稱不包含特殊字元,則提到的 Notes.ini 參數似乎工作正常。但是,如果他們這樣做,則名稱編碼如下:
CC: =?iso-8859-1?Q?Wei=DF=2C_Rupert=2C_Dr=2E?= <Rupert.Weiss@somecompany.de>
看起來好像在那種情況下逗號隱藏得太好而無法正確辨識?
參數
RFC822StripUnquotedDelimiters=1
絕對是您問題的解決方案。AND:問題是由交換引起的,因為它不遵循 RFC 並且“忘記”了逗號分隔名稱周圍的分隔符。當然 Outlook / Exchange 會發送一個帶有“正確”地址的專有附加標頭欄位,以便 Outlook / Exchange 收件人可以處理這些格式錯誤的郵件,但這不符合標準,因此被 domino 伺服器忽略。
在配置文件中設置條目後,您必須等到它被填充到伺服器的 notes.ini (
show config RFC822StripUnquotedDelimitersand
) 中,然後重新啟動路由器任務。重要提示:必須在執行 mime 轉換的伺服器上設置此設置。如果你有 HUB-/SPOKES 基礎設施,那麼這必須在 HUB 上設置,它對 SPOKES 沒有幫助….