執行 HCW 之後,從內部部署傳送至 Exchange Online 的電子郵件會顯示為外部

原始 KB 編號: 4052493

徵狀

請試想下列案例:

  • 您會針對包含 Edge 伺服器的 Exchange Server 2016 或 Exchange Server 2013 環境執行混合式設定精靈。
  • 使用者將電子郵件訊息從 Exchange 內部部署傳送至另一個使用者 Exchange Online 帳戶。 這兩位使用者都在您的組織中。

在此案例中,您會注意到接收者端有下列問題:

  • 訊息似乎為外部。
  • 寄件者不會解析為 GAL) (全域通訊清單中的收件者。

發生問題時的其他徵兆:

  • Send 連接器上有一個 Outbound to Office 365TLSCertificateName 屬性,可將訊息傳送至 Microsoft 365。 發生問題時,屬性值不會復寫到Edge伺服器。

  • 當您從信箱伺服器執行 start-edgesynchronization 命令時,輸出會將 [組 態類型] 顯示為 [ 不完整]。 以下是範例摘錄:

    RunspaceId: RunspaceId
    Result: Incomplete
    Type: Configuration
    Name: userwap
    
  • 下列錯誤會記錄在資料夾中的EdgeSync記錄檔中 <ExchangeInstallation>\TransportRoles\Logs\EdgeSync

    Date/Time.082Z,c76158dc155c4e2eab69305612c58890,689,,EdgeServerName.contoso.com,50636,SyncEngine,Low,要求中的 A 值無效。 [ExDirectoryException];內部例外狀況:要求中的值無效。 [DirectoryOperationException],“無法將專案 CN=Outbound 同步至 Office 365,CN=Connections,CN=Exchange 路由群組 (DWBGZMFD01QNBJR) ,CN=路由群組,CN=Exchange 管理群組 (FYDIBOHF23SPDLT) ,CN=管理群組,CN=ExchangeOrgName,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=domain,DC=com”,,,

    若要啟用 EdgeSync 記錄,請執行下列命令:

    Get-EdgeSyncServiceConfig | Set-EdgeSyncServiceConfig -LogLevel high -LogEnabled $true
    

原因

發生此問題的原因如下:

  • 針對儲存在Edge伺服器上ADAM架構中的 ms-Exch-Smtp-TLS-Certificate 屬性,上限設為256。

  • 第三方憑證中的下列字串長度超過 256 個字元:

    <I>Issuer<S>Subject name

    若要判斷字串的長度,請執行下列命令:

    ("<I>$((Get-SendConnector 'outbound to Office 365').tlscertificatename.certificateissuer)<S>$((Get-SendConnector 'outbound to Office 365').tlscertificatename.certificatesubject)").length
    

若要解決此問題,請使用下列其中一個方法。

解決方案 1:在 Edge 伺服器上將上限增加到 1024

  1. 使用 [以系統管理員身分執行] 選項開啟 Windows PowerShell 視窗。

  2. 執行下列命令來安裝遠端伺服器管理工具組:

    Add-WindowsFeature RSAT-ADDS
    
  3. 執行下列命令以匯入 Active Directory 模組:

    Import-Module ActiveDirectory
    
  4. 執行下列命令,以確認屬性 TLSCertificateName 的 cap 值:

    Get-ADObject -Filter {name -eq "ms-Exch-Smtp-TLS-Certificate"} -SearchBase ((get-ADRootDSE -Server localhost:50389).schemaNamingContext) -Server localhost:50389 -Properties * | Select-Object rangeupper
    
  5. 執行下列命令來設定 1024 上限:

    Get-ADObject -Filter {name -eq "ms-Exch-Smtp-TLS-Certificate"} -SearchBase ((get-ADRootDSE -Server localhost:50389).schemaNamingContext) -Server localhost:50389 -Properties * | Set-ADObject -Replace @{rangeupper=1024}
    
  6. 在 HUB 傳輸或信箱伺服器上,執行下列命令,將變更同步處理至 Edge 伺服器:

    start-EdgeSynchronization
    

解決方案 2:設定使用 FQDN 的傳送連接器

設定 Send 連接器不要使用 TLSCertificateName 屬性來指定要在 TLS 交涉期間使用的憑證。 相反地,請使用 FQDN,根據選取 輸出匿名 TLS 憑證中所述的憑證選取程式,選取適當的第三方憑證。

若要設定傳送連接器以使用 FQDN,請遵循下列步驟:

  1. 請確定將設為 FQDN 的功能變數名稱已設定為第三方憑證的主體名稱或主體別名。

  2. 執行下列命令,將 Send 連接器設定為使用 FQDN。 此命令也會清除 TLSCertificateName 屬性。

    Set-SendConnector "outbound to Office 365" -Fqdn "Domain Note in step 1 of option 2" -TlsCertificateName:$null
    
  3. 在 HUB 傳輸或信箱伺服器上,執行下列命令,將變更同步處理至 Edge 伺服器:

    start-EdgeSynchronization
    

解決方法 3:使用不會超過上限的憑證

使用不會超過上限的憑證。 如果要執行這項操作,請依照下列步驟執行:

  1. 建立憑證,其中憑證中的下列字串小於 256 個字元:

    <I>Issuer<S>SubjectName

  2. 匯入憑證。

  3. 將憑證與個別服務產生關聯。

  4. 再次執行混合式設定精靈以使用新的憑證。