症狀
請考慮以下案例:
- 您可以使用 Microsoft Exchange Server 2016 信箱或 Exchange Server 2013 信箱傳送電子郵件訊息。
- 電子郵件的主旨行包含不支援的編碼字元,以 CP 或 MS 開頭,後面接著 「-」,而不是數字,例如 cp-850。
在此案例中,電子郵件不會傳遞。 此外,您可能會收到類似下列 (NDR) 訊息未傳遞報告:
注意
遠端伺服器傳回 '550 5.6.0 CAT。InvalidContent.Exception: InvalidCharsetException, 字元集名稱 (cp-850) 無效或未安裝。;無法使用 InternalId InternalId, InternetMessageId 處理訊息內容。」
因此,cp-850 字元郵件的 NDR 日誌報告電子郵件無法傳遞到 Exchange 日誌目的地信箱。
原因
發生此問題的原因是,如果主旨行包含不支援的編碼字元,則 Exchange Server 2016 和 Exchange Server 2013 無法處理電子郵件訊息。
解決方式
若要解決這個問題,請安裝下列更新之一:
- 若為 Exchange Server 2016,請安裝累積更新 9 或 Exchange Server 2016 的較新累積更新。
- 若為 Exchange Server 2013,請安裝累積更新 20 或較新的 Exchange Server 2013 累積更新。
此外,還有一項功能可啟用後援以使用設定檔中的預設字集。 如果您啟用此功能,則可以傳送主旨行中包含不支援編碼字元的電子郵件訊息。 若要啟用此功能,請按照下列步驟操作:
設定這兩個檔案:EdgeTransport.exe.config 和 MSExchangeDelivery.exe.config。
備註預設情況下,這兩個檔案位於下列資料夾中:C:\Program Files\Microsoft\Exchange Server\V14\Bin,在記事本中開啟檔案。
在每個檔案中,在設定元素下新增下列設定元素:
備註唯一的元素差異是「版本」。例如,針對 Exchange Server 2013 累積更新 20 使用「版本=15.0.1366.0」,針對 Exchange Server 2016 累積更新 9 使用「版本=15.1.1462.0」。
<configSections> <section name="CTS" type="Microsoft.Exchange.Data.Internal.CtsConfigurationSection, Microsoft.Exchange.Data.Common, Version=15.0.1366.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35" /> </configSections> <CTS> <Globalization> <FallbackToDefaultCharset Fallback="true"/> <DefaultCulture Culture="en"/> </Globalization> </CTS>附註:
a) configSections 區段必須是 .Net 強制執行的設定元素的第一個元素。 否則,傳輸服務會在啟動時停止回應。
b) Microsoft.Exchange.Data.Common 組件的版本、區域性和公用權杖必須正確無誤。 您可以從全域組件快取 (GAC) 中找到它們。
c) FallbackToDefaultCharset 元素可用來開啟或關閉此功能。 您可以將 Fallback 屬性設定為 true 或 false,以開啟或關閉此功能。
d) 如果不支援電子郵件訊息上的字集, DefaultCUlture 元素是指定後援文化。 您必須將 Culture 屬性設定為有效的文化特性名稱。 否則,Exchange 會使用目前執行緒的文化性作為後援文化性。 在範例設定中,後援文化特性設定為 “en”。
儲存 EdgeTransport.exe.config 和 MSExchangeDelivery.exe.config 檔案。
重新啟動傳輸服務才會生效。
備註 必須仔細編輯設定檔。 沒有用於診斷的追蹤或事件記錄檔。 如果設定檔中有打錯字,此功能將無法如預期般運作。 此外,請注意,對於具有不支援字元集的訊息,我們無法保證收到該訊息時的任何內容,也無法保證收到此訊息時所造成的任何訊息的真實性。
此外,這裡有一個相關連結供您參考: 主旨行中包含不支援的編碼字元的電子郵件訊息不會在 Exchange Server 2010 環境中傳遞。
其他資訊
在您套用此更新並更新 EdgeTransport.exe.config 檔案之後,可能會發生問題。 在安裝 Exchange Server 2016 或 Exchange Server 2013 的後續累積更新期間,使用 Set-AppConfigValue 更新 EdgeTransport.exe.config 檔案時,您可能會收到下列錯誤訊息:
Microsoft.Exchange.Data.Common.LocalizedException: Set-AppConfigValue: 節點區段位於檔案 F:\Program Files\Microsoft\Exchange Server\V15\bin\EdgeTransport.exe.config,但它並不是唯一的。
若要修正此問題,在執行 Exchange Server 2016 或 Exchange Server 2013 的累積更新之前,應先執行下列步驟,從 EdgeTransport.exe.config 檔案中移除上述 CTS 區段:
- 停止所有的 Exchange 服務。
- 複製並儲存 EdgeTransport.exe.config 檔案。
- 從 EdgeTransport.exe.config 檔案中移除上述) 下列 CTS 區段 (。
<CTS>
<Globalization><FallbackToDefaultCharset fallback=“true”/>
<DefaultCulture Culture=“en”/>
</Globalization>
</CTS>
- 儲存更新的 EdgeTransport.exe.config 檔案。
- 執行 Exchange Server 2016 或 Exchange Server 2013 的稍後累積更新安裝。
- 完成設定後,請遵循本文來更新 EdgeTransport.exe.config 檔案。
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。
參考資料
了解 Microsoft 用來說明軟體更新的術語。