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(可能不是在这种情况下的问题,但在其他类似的情况下)。
同时确认用户正在运行的节点有权使用邮件程序。