nodemailer 在使用 SMTP 时获得了 EACCES

nodemailer got EACCES while using SMTP

我正在尝试使用 nodemailer 发送电子邮件。下面是示例代码。

const nodemailer = require('nodemailer');
let transporter = nodemailer.createTransport({
  host: '10.88.88.88', 
  port: 25, 
  secureConnection: false,
  auth: {
    user: 'user',  
    pass: 'pwd',
  }
});

let mailOptions = {
  from: 'sender@test.com', // sender address
  to: 'receiver@test.com', // list of receivers
  subject: 'Hello', // Subject line
  html: '<b>Hello world?</b>' // html body
};

transporter.sendMail(mailOptions, (error, info) => {
  if (error) {
    return console.log(error);
  }
  console.log('Message sent: %s', info.messageId);
});

但是我得到了下面的错误。看来我无法访问服务器。服务器正在使用 IIS 的 smtp 中继。此处 auth 中的确切 user/pass 是什么? server window 有权限访问smtp服务的用户帐号?如果我将 user/pass 更改为 mailaddress/password,我会得到相同的错误信息。如果我删除 auth,我仍然得到相同的错误信息。还是代理问题?

{ Error: connect EACCES 10.88.88.88:25
  at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1113:14)
  errno: 'EACCES',
  code: 'ECONNECTION',
  syscall: 'connect',
  address: '10.88.88.88,
  port: 25,
  command: 'CONN' }

服务器基础设施如下:

节点服务器 <--> SMTP 中继 IIS (10.88.88.88) <--> 邮件服务器

请检查使用端口 587 而不是 25。