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

NestJS中使用Nodemailer对接Hotmail时认证失败求助

NestJS + Nodemailer 对接Hotmail账户认证失败(已使用应用密码)

我查阅了大量相关帖子但都未能解决问题,特此求助:在NestJS应用中尝试通过Nodemailer发送邮件,使用文档提供的Ethereal测试邮箱时一切正常,但对接已获取应用密码的Hotmail账户时却失败。

相关代码

export async function sendEmail(createTicketDto: CreateTicketDto) {
  const { username, email, ticket_body, issue_type } = createTicketDto;
  const emailBody = `
  User ${email} reporting issue regarding ${issue_type}:\n\t${ticket_body}\n  \t\tActive username is: ${username}`;

  const transporter = nodemailer.createTransport({
    service: 'hotmail',
    host: 'smtp-mail.outlook.com',
    secure: false,
    port: 587,
    auth: {
      user: 'xxx@hotmail.com',
      pass: 'PASSWORD',
    },
    tls: {
      ciphers: 'SSLv3',
    },
  });
  console.log(emailBody);
  const mailData = await transporter.sendMail({
    from: '"XXXSUPPORT"<XXX@hotmail.com>',
    to: 'YYY@gmail.com',
    subject: issue_type,
    text: emailBody,
  });
  Logger.log(`Email sent with ID:  ${mailData.messageId}`);
  return mailData;
}

错误信息

[Nest] 22727  - 02/10/2023, 1:32:32 PM   ERROR [ExceptionsHandler] Invalid login: 535 5.7.3 Authentication unsuccessful [MN2PR17CA0007.namprd17.prod.outlook.com 2023-02-10T18:32:32.130Z 08DB0B4DDC8F1521]

解决方案

  • 修正TLS加密协议配置
    代码中指定的SSLv3已被Hotmail的SMTP服务器弃用,会直接导致认证失败。移除ciphers: 'SSLv3'配置,或替换为支持的协议:

    tls: {
      minVersion: 'TLSv1.2'
    }
    
  • 验证应用密码有效性
    确保Hotmail账户已开启双重验证,应用密码是在双重验证开启后生成的「其他(自定义名称)」类型,且代码中pass字段是完整的应用密码,无空格或截断。

  • 统一账号一致性
    确认auth.user与from字段中的邮箱完全一致,Hotmail会严格校验发件人账号和认证账号的匹配性,避免使用别名或不一致的邮箱地址。

  • 优化SMTP配置参数
    移除service: 'hotmail'避免自动配置冲突,手动指定参数确保正确性:

    const transporter = nodemailer.createTransport({
      host: 'smtp-mail.outlook.com',
      port: 587,
      secure: false, // 587端口使用STARTTLS,secure需设为false
      auth: {
        user: 'xxx@hotmail.com',
        pass: '你的应用密码',
      },
      tls: {
        minVersion: 'TLSv1.2'
      },
    });
    
  • 检查账户状态
    登录Hotmail网页版确认账户未被限制发送邮件,排查是否因近期发送行为触发反垃圾机制导致认证失败。


内容的提问来源于stack exchange,提问作者Adam C. MacKinnon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 10:17:23