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

Node.js环境下配置Nodemailer 4.6.3对接Exchange 2010遇到问题

解决Nodemailer对接Exchange 2010的连接问题

首先得点出你配置里的核心错误——host参数用错了!https://email.<COMPANYNAME>.com/owa是Exchange的网页端(OWA)地址,根本不是SMTP服务器的地址,这肯定连不上啊!Exchange 2010的SMTP服务有单独的服务器域名(比如smtp.<COMPANYNAME>.com),不能带协议和路径。

下面一步步帮你修正配置并排查问题:

核心配置修正

先换掉错误的host,再调整认证和安全设置——Exchange 2010常用NTLM认证,这和Outlook 365的OAuth机制不一样,必须单独指定:

let transporter = nodemailer.createTransport({
  // 替换成你们公司Exchange 2010的SMTP服务器地址,比如smtp.companyname.com
  host: 'smtp.<COMPANYNAME>.com',
  port: 587, // 587是STARTTLS端口,Exchange 2010默认支持
  secure: false, // 587端口设为false,因为是先建立明文连接再升级TLS
  auth: {
    user: '你的域账号(比如domain\\username或者username@companyname.com)',
    pass: '你的密码'
  },
  // 关键:Exchange 2010需要NTLM认证,必须添加这个配置
  authMethod: 'NTLM',
  // 如果是域账号,可能需要指定域名参数
  domain: '<COMPANYNAME>'
});

排查步骤

如果还是连不上,按下面的步骤逐一验证:

  • 确认SMTP服务器地址:找公司IT部门要Exchange 2010的SMTP服务器域名/IP,或者在Outlook客户端查看:文件→信息→账户设置→双击邮箱→查看“服务器信息”里的SMTP地址
  • 测试端口连通性:在你的Node.js服务器上用telnet smtp.<COMPANYNAME>.com 587或者nc -zv smtp.<COMPANYNAME>.com 587测试端口是否开放,防火墙/安全组有没有放行
  • 验证账号权限:确保你的账号有发送SMTP邮件的权限,Exchange 2010默认可能限制普通用户的SMTP发送权限
  • 测试连接有效性:用Nodemailer的verify方法快速检查连接状态:
transporter.verify((error, success) => {
  if (error) {
    console.error('连接失败:', error);
  } else {
    console.log('连接成功,可以发送邮件');
  }
});

备选端口配置

如果587端口不行,试试465端口(SSL加密):

let transporter = nodemailer.createTransport({
  host: 'smtp.<COMPANYNAME>.com',
  port: 465,
  secure: true, // 465端口设为true,直接建立SSL连接
  auth: {
    user: '你的账号',
    pass: '你的密码'
  },
  authMethod: 'NTLM',
  domain: '<COMPANYNAME>'
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:54:44