Share via


在 Exchange Online 中啟用或停用已驗證的用戶端 SMTP 提交 (SMTP 驗證)

在 Office 365 和 Microsoft 365 的下列案例中,會使用 SMTP 用戶端電子郵件提交 (也稱為已驗證的 SMTP 提交SMTP 驗證) :

  • POP3 和 IMAP4 用戶端。 這些通訊協定只允許用戶端 接收 電子郵件訊息,因此需要使用已驗證的 SMTP 來 傳送 電子郵件訊息。
  • 產生和傳送電子郵件訊息的應用程式、報表伺服器和多功能裝置。

SMTP 驗證通訊協定用於 SMTP 用戶端電子郵件提交,通常是在 TCP 連接埠 587 上。 除了基本身份驗證之外,SMTP AUTH 還支援新式驗證 (新式驗證) OAuth。 如需詳細資訊,請 參閱使用 OAuth 驗證 IMAP、POP 或 SMTP 連線

幾乎所有連線到 Office 365 或 Microsoft 365 (中 Exchange Online 信箱的新式電子郵件用戶端,例如 Outlook、Outlook 網頁版、iOS 郵件、iOS 版 Outlook 和 Android 等,) 不會使用 SMTP 驗證來傳送電子郵件訊息。

因此,強烈建議您在 Exchange Online 組織中停用 SMTP 驗證,並只針對 (信箱) 仍然需要的帳戶啟用它。 有兩個設定可協助您執行此動作:

  • 停用 (或啟用) SMTP 驗證的全組織設定。
  • 覆寫全租用戶設定的每個信箱設定。

這些設定僅適用於裝載於 Exchange Online (Office 365 或 Microsoft 365) 的信箱。

注意事項

停用組織中的 SMTP 驗證

您可以在 EAC 中或使用 Exchange Online PowerShell,為您的組織停用 (或全域啟用) SMTP 驗證。

若要在EAC中全域停用組織中的 SMTP 驗證,請移至 [設定] 中的 [ 郵件流程 設定] 頁面 ,並切換 標示 為 [關閉組織的 SMTP 驗證通訊協定] 的設定

若要使用 PowerShell 在組織中全域停用 SMTP 驗證,請執行下列命令:

Set-TransportConfig -SmtpClientAuthenticationDisabled $true

注意事項

若要在已停用 SMTP 驗證時啟用, 請使用 值 $false

您如何知道此程式運作正常?

若要確認您已在組織中全域停用 SMTP 驗證,請執行下列命令,並確認 SmtpClientAuthenticationDisabled 屬性的值為 True

Get-TransportConfig | Format-List SmtpClientAuthenticationDisabled

為特定信箱啟用 SMTP 驗證

Microsoft 365 系統管理中心 或 Exchange Online PowerShell 提供啟用 (或停用) SMTP 驗證的個別信箱設定。

使用 Microsoft 365 系統管理中心 在特定信箱上啟用或停用 SMTP 驗證

  1. 開啟 Microsoft 365 系統管理中心 並移至 [使用者>] [作用中使用者]

  2. 選取使用者,然後在出現的飛出視窗中,選取 [ 郵件]

  3. 在 [Email 應用程式] 區段中,選取 [管理電子郵件應用程式]

  4. 確認已 驗證的 SMTP 設定:未核取 = 已停用,已核取 = 已啟用。

  5. 當您完成時,請選取 [ 儲存變更]

使用 Exchange Online PowerShell 在特定信箱上啟用或停用 SMTP 驗證

使用下列語法:

Set-CASMailbox -Identity <MailboxIdentity> -SmtpClientAuthenticationDisabled <$true | $false | $null>

$null 表示信箱的設定是由組織的全域設定所控制。 您可以使用 $true 停用) 或 $false (啟用) (值來 寫組織設定。 信箱設定的優先順序高於組織設定。

此範例會啟用信箱 sean@contoso.com的 SMTP 驗證。

Set-CASMailbox -Identity sean@contoso.com -SmtpClientAuthenticationDisabled $false

此範例會停用信箱 chris@contoso.com的 SMTP 驗證。

Set-CASMailbox -Identity chris@contoso.com -SmtpClientAuthenticationDisabled $true

使用 Exchange Online PowerShell 在多個信箱上啟用或停用 SMTP 驗證

使用文字文件來識別信箱。 不包含空格 (的值,例如別名、電子郵件地址或帳戶名稱) 效果最佳。 文字文件必須在每一行上包含一個信箱,如下所示:

akol@contoso.com
tjohnston@contoso.com
kakers@contoso.com

語法會使用下列兩個命令 (一個命令來識別信箱,另一個命令則是針對這些信箱啟用 SMTP 驗證) :

$<VariableName> = Get-Content "<text file>"
$<VariableName> | foreach {Set-CASMailbox -Identity $_ -SmtpClientAuthenticationDisabled <$true | $false | $null>}

此範例會針對 C:\My Documents\Allow SMTP AUTH.txt 檔案中指定的信箱啟用 SMTP 驗證。

$Allow = Get-Content "C:\My Documents\Allow SMTP AUTH.txt"
$Allow | foreach {Set-CASMailbox -Identity $_ -SmtpClientAuthenticationDisabled $false}

注意事項

若要停用信箱的 SMTP 驗證,請使用 值 $true。 若要將控制權傳回組織設定,請使用 值 $null

如何知道這是否正常運作?

若要確認您已針對特定信箱啟用或停用 SMTP 驗證,請執行下列任何步驟:

  • Microsoft 365 系統管理中心 中的個別信箱:移至 [使用者>] [作用中使用者]> 選取使用者>選取 [郵件>] 選取 [管理電子郵件應用程式],並確認 [已驗證的 SMTP (已核取 = 已啟用,未核取 = 已停用) 。

  • Exchange Online PowerShell 中的個別信箱:將 取代<MailboxIdentity>為名稱、別名、電子郵件位址或信箱的帳戶名稱;執行下列命令;並確認 SmtpClientAuthenticationDisabled 屬性的值 (False = enabled、= disabled、 True blank = use organization setting) 。

    Get-CASMailbox -Identity <MailboxIdentity>  | Format-List SmtpClientAuthenticationDisabled
    
  • 已停用 SMTP 驗證的所有信箱:執行下列命令:

    $Users = Get-CASMailbox -ResultSize unlimited
    $Users | where {$_.SmtpClientAuthenticationDisabled -eq $true}
    
  • 開啟 SMTP 驗證的所有信箱:執行下列命令:

    $Users = Get-CASMailbox -ResultSize unlimited
    $Users | where {$_.SmtpClientAuthenticationDisabled -eq $false}
    
  • SMTP 驗證由組織設定控制的所有信箱:執行下列命令:

    $Users = Get-CASMailbox -ResultSize unlimited
    $Users | where {$_.SmtpClientAuthenticationDisabled -eq $null}