使用nodemailer在node.js中发送邮件
我尝试使用Nodemailer在node.js中发送邮件,但是它显示了一些错误,如{ [Error: self signed certificate in certificate chain] code: 'ECONNECTION', command: 'CONN' }
我的node.js代码是
var express = require('express'); var app = express(); var nodemailer = require('nodemailer'); var transporter = nodemailer.createTransport('smtps://something%40gmail.com:password@smtp.gmail.com'); var mailOptions = { to: 'stevecameron2016@gmail.com', subject: 'Hello ?', text: 'Hello world ??', html: '<b>Hello world ??</b>' }; transporter.sendMail(mailOptions, function(error, info){ if(error){ return console.log(error); } console.log('Message sent: ' + info.response); }); var server = app.listen(8900,function(){ console.log("We have started our server on port 8900"); });
要允许通过“不太安全的应用程序”发送电子邮件,请转到链接并select“打开”。
(有关更安全的应用程序的更多信息
var nodemailer = require('nodemailer'); var smtpTransport = require('nodemailer-smtp-transport'); var mailAccountUser = '<YOUR_ACCOUNT_USER>' var mailAccountPassword = '<YOUR_ACCOUNT_PASS>' var fromEmailAddress = '<FROM_EMAIL>' var toEmailAddress = 'TO_EMAIL' var transport = nodemailer.createTransport(smtpTransport({ service: 'gmail', auth: { user: mailAccountUser, pass: mailAccountPassword } })) var mail = { from: fromEmailAddress, to: toEmailAddress, subject: "hello world!", text: "Hello!", html: "<b>Hello!</b><p><a href=\"http://www.yahoo.com\">Click Here</a></p>" } transport.sendMail(mail, function(error, response){ if(error){ console.log(error); }else{ console.log("Message sent: " + response.message); } transport.close(); });
尝试https://github.com/nodemailer/nodemailer/issues/406
将tls: { rejectUnauthorized: false }
到您的传输器构造器选项
ps发送邮件服务器地址不是一个好主意,如果它是真实的
我也在这个麻烦,我做了下一个代码行:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
在创buildsmpttransport之前
例如,在你的代码只是把这个:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; var transporter = nodemailer.createTransport('smtps://something%40gmail.com:password@smtp.gmail.com');