修复:“Send-MailMessage:对租户禁用 SmtpClientAuthentication。”错误
问题 :
当尝试使用 Microsoft 365 SMTP 服务器从 PowerShell 发送电子邮件时,我收到以下错误消息:
Send-MailMessage -To "Helpdesk@Crescent.com" -From "Monitoring@Crescent.com" -Subject "Hello from PowerShell" -Body "This is a test email sent from PowerShell." -SmtpServer "smtp.office365.com" -Port 587 -Credential (Get-Credential) -UseSsl
Send-MailMessage :SMTP 服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.7.57 客户端未经过身份验证,无法发送邮件。错误:535 5.7.139 身份验证失败,租户的 SmtpClientAuthentication 已禁用。请访问 https://aka.ms/smtp_auth_disabled 了解更多信息。
[VI1PR06CA0101.eurprd06.prod.outlook.com 2023-08-20T12:06:39.600Z08DB9FCA92567226]
行:1 字符:1
- 发送邮件消息 - 至“Helpdesk@Crescent.com” - 来自“Monitoring@ ...
~~~~~~~~~~~~~~~~~- 类别信息:InvalidOperation:(System.Net.Mail.SmtpClient:SmtpClient)[Send-MailMessage],SmtpException
- FullQualifiedErrorId:SmtpException、Microsoft.PowerShell.Commands.SendMail
解决方案:
正如错误消息所示,错误的根本原因是 Exchange Online 中禁用了 SMTP 协议。要解决该错误,您必须在 Microsoft 365 Exchange Online 管理中心中启用 SMTP 协议。具体方法如下:
- 登录 Exchange Online 管理中心:https://admin.exchange.microsoft.com
-
单击“设置>>邮件流”。
在邮件流设置中的安全性下:取消选中“为您的组织关闭 SMTP AUTH 协议”复选框,然后单击“保存”按钮。
就这样!您应该能够使用 PowerShell Send-MailMessage cmdlet 和 Office 365 SMTP 服务器发送电子邮件。


