「550 5.6.0 CAT。InvalidContent.Exception」且電子郵件未在 Exchange Server 2016 和 2013 中交付

套用到
Exchange Server 2013 Enterprise Edition Exchange Server 2016 Enterprise Edition Exchange Server 2016 Standard Edition Exchange Server 2013 SP1 Exchange Server 2013 Standard Edition

症狀

請考慮以下案例:

  • 您可以透過 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 若主旨行包含不支援的編碼字元,則無法處理郵件。

解決方式

若要解決這個問題,請安裝下列更新之一:

此外,還有一項功能可啟用備援,以使用設定檔中的預設字元集。 啟用此功能後,主旨行中未支援編碼字元的電子郵件即可送達。 要啟用此功能,請依照以下步驟操作:

  1. 設定這兩個檔案: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 元素用於開啟或關閉此功能。 你可以透過將 備用 屬性設為 truefalse 來開啟或關閉這個功能。
      d) DefaultCulture 元素是若電子郵件中的字元集不支援,則指定備援文化。 你必須將 Culture 屬性設為有效的 culture 名稱。 如果沒有,Exchange 會以當前討論串的文化作為備用文化。 在範例配置中,備用培養設定為「en」。

  2. 儲存 EdgeTransport.exe.config 和 MSExchangeDelivery.exe.config 檔案。

  3. 重新啟動運輸服務以生效。

設定檔必須仔細編輯。 沒有痕跡或事件日誌可用於診斷。 如果設定檔有錯字,這個功能就無法如預期運作。 此外,請注意對於不支援字元的訊息,我們不會保證收到訊息時的任何內容,也不保證收到時該訊息所產生的訊息的忠實度。

此外,這裡有一個相關連結供你參考:若主旨行包含不支援的編碼字元,郵件不會在 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 用來說明軟體更新的術語