smtp通过postfix和nodejsclosuresnodemailer连接发送邮件

我有使用nodejs模块nodemailer通过smtp服务器远程发送的问题

host: 'mail.5cpa.ru' port: 587 secure: false (true tried also) 

smtp服务器是我的,我可以通过使用相同的设置发送邮件

日志

 server 220 5cpa.ru ESMTP Postfix (Ubuntu) client EHLO vonica server 250-5cpa.ru 250-PIPELINING 250-SIZE 15728640 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN client STARTTLS server 220 2.0.0 Ready to start TLS socket Closing connection to the server 

谢谢!

我有类似的问题(也许是相同的),我知道这发生在我使用自签名SSL证书。 我通过添加“rejectUnauthorized”选项来解决这个问题:

 var transporter = nodemailer.createTransport(smtpTransport({ host: host, port: 25, auth: { user: user, pass: pass }, tls:{ rejectUnauthorized: false } })); 

该错误适用于“sendMail”函数的callback,不会以“错误”forms发出。

我没有足够的信誉来回答上面的问题,但是您也可以检查Nodemailer的最新语法,即:

  const smtpConfig = { host: 'smtp.gmail.com', port: 465, secure: true, // use SSL auth: { user: 'user@gmail.com', pass: 'pass' } } 

注意:

  secure: true // use SSL 

如果您告诉它使用SSL,则可能不需要TLS解决方法。

参考: https : //nodemailer.com/2-0-0-beta/setup-smtp/

我目前正在运行postfix和mailx,而我只需要input主机名:

  const transporter = nodemailer.createTransport({ name: 'localhost' }) 

这应该工作,只要你可以执行这个testing(inputshell):

  echo "Email Body Test" | mail -s "Email Subject Test" you@yourdomain.com 

如果它不起作用,请调查你的防火墙,端口25(可能不是在这种情况下的问题,但在其他类似的情况下)。

同时确认用户正在运行的节点有权使用邮件程序。