You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Nodemailer调用微软Live邮箱报错535 5.7.139,求解决方案

解决Nodemailer适配微软邮箱(live.cn)时的535认证失败问题

Nodemailer仍然可以适配微软邮箱,你遇到的535 5.7.139错误是因为微软逐步淘汰了SMTP协议的基础认证方式——即使你使用了MFA应用密码,当前账号的基础SMTP认证已被禁用,必须切换到OAuth2认证方案。

错误原因

微软从2024年开始对Outlook/live.cn等个人及部分企业账号关闭了SMTP基础认证通道,无论是否使用应用密码,基础认证(账号+密码直接校验)都会被拒绝,因此原配置不再生效。

解决方案:切换到OAuth2认证

你需要修改Nodemailer的传输配置,改用OAuth2认证方式,步骤如下:

  1. 在Azure AD注册应用并配置权限

    • 登录Azure门户,注册一个新的应用程序
    • 为应用添加Microsoft Graph的SMTP.Send权限(权限类型选择Delegated或Application,个人账号推荐前者)
    • 获取应用的客户端ID、客户端密钥、租户ID,如果用Delegated权限还需要生成刷新令牌
  2. 更新Nodemailer配置代码
    替换原有的认证配置为OAuth2类型:

const nodemailer = require('nodemailer');
const ENV = process.env;

const transporter = nodemailer.createTransport({
    host: 'smtp.office365.com',
    port: 587,
    secure: false,
    auth: {
        type: 'OAuth2',
        user: ENV.SENDER_USER,
        clientId: ENV.OAUTH_CLIENT_ID,
        clientSecret: ENV.OAUTH_CLIENT_SECRET,
        refreshToken: ENV.OAUTH_REFRESH_TOKEN,
        tenantId: ENV.OAUTH_TENANT_ID
    }
});

补充说明

  • 若为个人live.cn账号,使用Delegated权限时,需要通过OAuth授权流程获取刷新令牌,该令牌可以长期用于获取访问令牌
  • 企业账号可选择Application权限,无需刷新令牌,但需要管理员同意权限申请
  • smtp.office365.com是微软统一的SMTP服务器地址,替代原smtp-mail.outlook.com兼容性更好

内容的提问来源于stack exchange,提问作者yunnysunny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 05:03:24