在 Exchange Online 中启用或禁用经过身份验证的客户端 SMTP 提交 (SMTP 身份验证)
重要
从 2022 年 12 月起,经典 Exchange 管理员 中心将在全球客户中弃用。 Microsoft 建议使用新的 Exchange 管理员中心(如果尚未这样做)。
虽然大多数功能已迁移到新的 EAC,但某些功能已迁移到其他管理中心,其余功能将很快迁移到新 EAC。 在“其他功能”中找到新 EAC 中尚不存在的功能,或使用全局搜索来帮助你在新 EAC 中导航。
SMTP 客户端电子邮件提交 (也称为经过身份验证的 SMTP 提交或 SMTP 身份验证) 在 Office 365 和 Microsoft 365 的以下方案中使用:
- POP3 和 IMAP4 客户端。 这些协议仅允许客户端接收电子邮件,因此它们需要使用经过身份验证的 SMTP 发送电子邮件。
- 生成和发送电子邮件的应用程序、报表服务器和多功能设备。
SMTP 身份验证协议用于 SMTP 客户端电子邮件提交,通常在 TCP 端口 587 上。 除了基本身份验证之外,SMTP AUTH 还支持新式身份验证 (新式身份验证通过 OAuth) 。 有关详细信息,请参阅 使用 OAuth 对 IMAP、POP 或 SMTP 连接进行身份验证。
几乎所有连接到 Office 365 或 Microsoft 365 中Exchange Online邮箱的新式电子邮件客户端 (例如 Outlook、Outlook 网页版、iOS 邮件、Outlook for iOS 和 Android 等) 不使用 SMTP AUTH 发送电子邮件。
因此,强烈建议在Exchange Online组织中禁用 SMTP AUTH,并仅针对仍需要它的邮箱) (帐户启用它。 有两个设置可以帮助你执行此操作:
- 用于禁用 (或启用) SMTP 身份验证的组织范围设置。
- 覆盖租户范围的设置的每个邮箱设置。
请注意,这些设置仅适用于托管在 Exchange Online (Office 365 或 Microsoft 365) 中的邮箱。
注意
- 如果组织中启用了安全默认值,则 SMTP AUTH 已在 Exchange Online 中禁用。 有关详细信息,请参阅什么是安全性默认值?
- 如果身份验证策略禁用 SMTP 的基本身份验证,则即使启用本文中所述的设置,客户端也无法使用 SMTP AUTH 协议。 有关详细信息,请参阅在 Exchange Online 中禁用基本身份验证。
在组织中禁用 SMTP 身份验证
可以在新的 EAC 中全局为组织禁用 (或启用) SMTP AUTH,也可以使用 Exchange Online PowerShell。
若要在新的 EAC 中全局禁用组织中的 SMTP AUTH,请转到“设置”下的“邮件流设置”页,并切换标记为“关闭组织的 SMTP AUTH 协议”的设置
若要使用 PowerShell 在组织中全局禁用 SMTP 身份验证,请运行以下命令:
Set-TransportConfig -SmtpClientAuthenticationDisabled $true
注意:若要启用 SMTP 身份验证(如果已禁用),请使用值 $false
。
你如何知道此过程的工作原理?
若要验证是否已在组织中全局禁用 SMTP AUTH,请运行以下命令并验证 SmtpClientAuthenticationDisabled 属性的值是否为 True
:
Get-TransportConfig | Format-List SmtpClientAuthenticationDisabled
为特定邮箱启用 SMTP 身份验证
Microsoft 365 管理中心或 powerShell Exchange Online中提供了用于启用 (或禁用) SMTP AUTH 的每个邮箱设置。
使用Microsoft 365 管理中心在特定邮箱上启用或禁用 SMTP 身份验证
打开Microsoft 365 管理中心并转到“用户>活动用户”。
选择该用户,然后在出现的浮出控件中,单击“ 邮件”。
在“Email应用”部分中,单击“管理电子邮件应用”。
验证 “经过身份验证的 SMTP ”设置:unchecked = disabled,checked = enabled。
完成后,单击“保存更改”。
使用 Exchange Online PowerShell 在特定邮箱上启用或禁用 SMTP 身份验证
使用以下语法:
Set-CASMailbox -Identity <MailboxIdentity> -SmtpClientAuthenticationDisabled <$true | $false | $null>
值 $null
指示邮箱的设置由组织的全局设置控制。 使用 $true
(禁用) 或 $false
启用 (的值) 来替代 组织设置。 邮箱设置优先于组织设置。
本示例为邮箱 sean@contoso.com启用 SMTP AUTH。
Set-CASMailbox -Identity sean@contoso.com -SmtpClientAuthenticationDisabled $false
此示例禁用邮箱 chris@contoso.com的 SMTP AUTH。
Set-CASMailbox -Identity chris@contoso.com -SmtpClientAuthenticationDisabled $true
使用 Exchange Online PowerShell 在多个邮箱上启用或禁用 SMTP AUTH
使用文本文件标识邮箱。 不包含空格 (的值,例如别名、电子邮件地址或帐户名) 效果最佳。 文本文件的每一行上必须包含一个邮箱,如下所示:
akol@contoso.com
tjohnston@contoso.com
kakers@contoso.com
语法使用以下两个命令 (一个用于标识邮箱,另一个用于为这些邮箱启用 SMTP AUTH) :
$<VariableName> = Get-Content "<text file>"
$<VariableName> | foreach {Set-CASMailbox -Identity $_ -SmtpClientAuthenticationDisabled <$true | $false | $null>}
本示例为文件 C:\My Documents\Allow SMTP AUTH.txt 中指定的邮箱启用 SMTP AUTH。
$Allow = Get-Content "C:\My Documents\Allow SMTP AUTH.txt"
$Allow | foreach {Set-CASMailbox -Identity $_ -SmtpClientAuthenticationDisabled $false}
注意
若要禁用邮箱的 SMTP 身份验证,请使用值 $true
。 若要将控制权返回到组织设置,请使用 值 $null
。
如何知道操作成功?
若要验证是否已为特定邮箱启用或禁用 SMTP AUTH,请执行以下步骤:
Microsoft 365 管理中心中的单个邮箱:转到“用户>”“活动用户>”,选择用户>单击“邮件>”单击“管理电子邮件应用”,并验证“经过身份验证的 SMTP (选中 = 启用、取消选中 = 禁用) 的值。
Exchange Online PowerShell 中的单个邮箱:将 替换为
<MailboxIdentity>
邮箱的名称、别名、电子邮件地址或帐户名称;运行以下命令;并验证 smtpClientAuthenticationDisabled 属性的值 (False
= enabled,True
= disabled,blank = use organization setting) 。Get-CASMailbox -Identity <MailboxIdentity> | Format-List SmtpClientAuthenticationDisabled
禁用 SMTP AUTH 的所有邮箱:运行以下命令:
$Users = Get-CASMailbox -ResultSize unlimited $Users | where {$_.SmtpClientAuthenticationDisabled -eq $true}
启用 SMTP AUTH 的所有邮箱:运行以下命令:
$Users = Get-CASMailbox -ResultSize unlimited $Users | where {$_.SmtpClientAuthenticationDisabled -eq $false}
SMTP 身份验证由组织设置控制的所有邮箱:运行以下命令:
$Users = Get-CASMailbox -ResultSize unlimited $Users | where {$_.SmtpClientAuthenticationDisabled -eq $null}