症狀
請考慮以下案例:
- 您可以透過 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 的訊息內容。』
因此,NDR 針對 cp-850 字元郵件的日誌報告郵件無法送達 Exchange 日誌目的地郵箱。
原因
此問題發生是因為 Exchange Server 2016 與 Exchange Server 2013 若主旨行包含不支援的編碼字元,則無法處理郵件。
解決方式
若要解決這個問題,請安裝下列更新之一:
- 對於 Exchange Server 2016,請安裝累積更新 9 或之後的累積更新以支援 Exchange Server 2016。
- 對於 Exchange Server 2013,請安裝 Cumulative Update 20 或 Exchange Server 2013 的後續累積更新。
此外,還有一項功能可啟用備援,以使用設定檔中的預設字元集。 啟用此功能後,主旨行中未支援編碼字元的電子郵件即可送達。 要啟用此功能,請依照以下步驟操作:
設定這兩個檔案:EdgeTransport.exe.config 和 MSExchangeDelivery.exe.config。
註預設情況下,這兩個檔案位於以下資料夾:C:\Program Files\Microsoft\Exchange Server\V14\Bin,在記事本中開啟檔案。
在每個檔案中,請在配置元素下方新增以下設定元素:
註元素唯一的差別是「版本」。例如,Exchange Server 2013 累積更新 20 使用「Version=15.0.1366.0」,Exchange Server 2016 累積更新 9 使用「Version=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) (Global Assembly Cache 找到它們。
c) FallbackToDefaultCharset 元素用於開啟或關閉此功能。 你可以透過將 備用 屬性設為 true 或 false 來開啟或關閉這個功能。
d) DefaultCulture 元素是若電子郵件中的字元集不支援,則指定備援文化。 你必須將 Culture 屬性設為有效的 culture 名稱。 如果沒有,Exchange 會以當前討論串的文化作為備用文化。 在範例配置中,備用培養設定為「en」。
儲存 EdgeTransport.exe.config 和 MSExchangeDelivery.exe.config 檔案。
重新啟動運輸服務以生效。
註 設定檔必須仔細編輯。 沒有痕跡或事件日誌可用於診斷。 如果設定檔有錯字,這個功能就無法如預期運作。 此外,請注意對於不支援字元的訊息,我們不會保證收到訊息時的任何內容,也不保證收到時該訊息所產生的訊息的忠實度。
此外,這裡有一個相關連結供你參考:若主旨行包含不支援的編碼字元,郵件不會在 Exchange Server 2010 環境中送達。
其他資訊
在套用此更新並更新 EdgeTransport.exe.config 檔案後,可能會發生問題。 當 EdgeTransport.exe.config 檔案 Set-AppConfigValue 在安裝 2016 Exchange Server或 2013 Exchange Server 累積更新時,可能會收到以下錯誤訊息:
Microsoft.Exchange.Data.Common.LocalizedException: Set-AppConfigValue: 節點區塊在檔案 F:\Program Files\Microsoft\Exchange Server\V15\bin\EdgeTransport.exe.config 中找到,但並非唯一。
為了解決這個問題,在你執行 2016 Exchange Server或 2013 Exchange Server 的累積更新前,應該採取以下步驟,從 EdgeTransport.exe.config 檔案中移除上述的 CTS 部分:
- 停止所有交易所服務。
- 複製並儲存 EdgeTransport.exe.config 檔案。
- 請從 EdgeTransport.exe.config 檔案中移除上述列出的 CTS (段) 。
<CTS>
<全球化><FallbackToDefaultCharset Fallback=“true”/>
<DefaultCulture Culture=“en”/>
</全球化>
</CTS>
- 儲存更新後的 EdgeTransport.exe.config 檔案。
- 執行後續累積更新的 Exchange Server 2016 或 Exchange Server 2013 設定。
- 設定完成後,請依照本文更新 EdgeTransport.exe.config 檔案。
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。
參考資料
了解 Microsoft 用來說明軟體更新的術語。