在 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) 的信箱。
注意事項
- 如果您的組織已啟用安全性預設值,則已在 Exchange Online 中停用SMTP驗證。 若要使用 SMTP 驗證,您必須停用 安全性預設值。 如需詳細資訊,請參閱 Microsoft Entra ID 中的安全性預設值
- 如果您的驗證原則停用 SMTP 的基本身份驗證,即使您啟用本文中所述的設定,客戶端還是無法使用 SMTP 驗證通訊協定。 如需詳細資訊,請參閱在 Exchange Online 中停用基本身份驗證。
停用組織中的 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 驗證
開啟 Microsoft 365 系統管理中心 並移至 [使用者>] [作用中使用者]。
選取使用者,然後在出現的飛出視窗中,選取 [ 郵件]。
在 [Email 應用程式] 區段中,選取 [管理電子郵件應用程式]。
確認已 驗證的 SMTP 設定:未核取 = 已停用,已核取 = 已啟用。
當您完成時,請選取 [ 儲存變更]。
使用 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}