Node应用连接Office365邮件服务器报SmtpClientAuthentication禁用如何解决
报错解决:Office 365 租户
SmtpClientAuthentication is disabled for the Tenant 问题处理 错误信息:
SmtpClientAuthentication is disabled for the Tenant
1. 调整Office 365租户/邮箱SMTP AUTH权限
该错误核心原因是微软默认关闭了租户全局的SMTP身份验证权限,你可以按需求选择全局开启或仅开启指定发件账号的权限,操作需要使用Exchange Online PowerShell:
- 首先安装Exchange Online管理模块,执行连接命令:
Connect-ExchangeOnline -Organization <你的租户域名>.onmicrosoft.com - 查看全局SMTP AUTH开关状态:
Get-TransportConfig | Format-List SmtpClientAuthenticationDisabled - 如果返回值为
True,可选择全局开启:Set-TransportConfig -SmtpClientAuthenticationDisabled $false - 若不需要全局开启,仅给发信用的独立账号开权限:
Set-CASMailbox -Identity <你的发件人邮箱地址> -SmtpClientAuthenticationDisabled $false
2. GoDaddy托管Office 365额外配置
如果你使用的是GoDaddy托管的Office 365服务,租户会有额外的默认限制:
- 登录GoDaddy账号,进入微软365管理页
- 找到你用来发信的邮箱账号,进入「高级设置」页
- 勾选打开「允许经过身份验证的SMTP」选项,保存后等待10分钟生效
3. Node端配置校验
确保你的Node代码中的SMTP配置符合Office 365要求,以常用的nodemailer库为例,配置参考如下:
const nodemailer = require('nodemailer'); const transporter = nodemailer.createTransport({ host: 'smtp.office365.com', port: 587, secure: false, // 587端口使用STARTTLS加密,此处固定为false requireTLS: true, auth: { user: '你的完整发件人邮箱地址', pass: '你的邮箱密码/应用密码' } });
注意点:
- 如果你的发件账号开启了多因素认证(MFA),不能直接用账号密码登录,需要到Azure AD账号安全中心生成专用的应用密码填入配置
- 可到Azure AD的「登录日志」中查看对应账号的登录失败记录,排查是否有条件访问策略拦截了SMTP认证请求
内容的提问来源于stack exchange,提问作者Codehouze
相关产品推荐
相关产品推荐

