Azure Function发送邮件提示租户SmtpClientAuthentication禁用求助
报错核心原因
该报错是由于Microsoft 365租户默认关闭了SMTP客户端身份验证(SMTP AUTH)功能,和你已配置的scopes参数、AAD应用权限无直接关联,属于租户级的邮件发送协议限制。
解决方案
方案1:启用SMTP AUTH(适配现有SMTP发送逻辑)
优先选择针对单个发件邮箱开启的方式,降低安全风险:
- 步骤1:安装Exchange Online PowerShell模块
运行命令:Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber - 步骤2:使用租户管理员账号连接Exchange Online
运行命令:Connect-ExchangeOnline -UserPrincipalName <Exchange管理员的用户主体名称> - 步骤3:为发件使用的邮箱单独启用SMTP AUTH
运行命令:Set-CASMailbox -Identity <实际发件邮箱地址> -SmtpClientAuthenticationDisabled $false - 步骤4:验证配置是否生效
运行命令:Get-CASMailbox -Identity <实际发件邮箱地址> | Select-Object SmtpClientAuthenticationDisabled
返回值为False即配置成功。
如果需要全局开启(不推荐,安全风险较高),运行命令:Set-OrganizationConfig -SmtpClientAuthenticationDisabled $false
方案2:改用Microsoft Graph API发送邮件(生产环境推荐)
你已为AAD应用授予Mail.Send权限,可直接调用Graph接口发送邮件,完全规避SMTP协议相关限制,无需额外新增权限:
- 替换原有SMTP发送逻辑,调用Graph发送邮件接口:
POST https://graph.microsoft.com/v1.0/users/<发件用户ID/邮箱地址>/sendMail - 携带已获取的有效访问令牌发起请求即可完成邮件发送。
生效验证
配置完成后等待10-15分钟让配置同步生效,再重新触发Azure Function执行发送操作即可。
内容的提问来源于stack exchange,提问作者AlexDemo
相关产品推荐
相关产品推荐

