使用 nodemailer 在 node.js 中发送邮件
Sending mail in node.js using nodemailer
我正在尝试使用 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");
});
尝试https://github.com/nodemailer/nodemailer/issues/406
将 tls: { rejectUnauthorized: false }
添加到您的运输构造函数选项中
p.s post 你的邮件服务器地址不是一个好主意,如果它是真实的
要允许通过“不太安全的应用程序”发送电子邮件,请转至 the link 并选择“打开”。
(More info 关于安全性较低的应用程序)
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();
});
我也遇到了这个麻烦,我做的是下一行代码:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
就在创建 smpttransport 之前
例如,在您的代码中只需输入:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
var transporter = nodemailer.createTransport('smtps://something%40gmail.com:password@smtp.gmail.com');
@user3985565 说的是对的。但是,如果您使用的是 gmail,您还需要更改 gmail 帐户中的一些设置。更具体地说,您需要在您的 gmail 帐户中 "allow less secure apps"。为此,只需按照以下步骤操作:
- 按原样测试 nodemailer
- node 将抛出错误,gmail 将向您发送一封安全警报电子邮件,通知您 "an unsafe app tried to access your account"
- 在此电子邮件中,您需要单击 "check activity",然后在接下来的屏幕中,您必须取消回答 "yes"
- 您在以下屏幕中的下一次点击是 "more information",然后是 "less secure apps"。
- 最后你会看到一个拨动开关,你必须打开它。
对我有用。
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
我正在尝试使用 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");
});
尝试https://github.com/nodemailer/nodemailer/issues/406
将 tls: { rejectUnauthorized: false }
添加到您的运输构造函数选项中
p.s post 你的邮件服务器地址不是一个好主意,如果它是真实的
要允许通过“不太安全的应用程序”发送电子邮件,请转至 the link 并选择“打开”。
(More info 关于安全性较低的应用程序)
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();
});
我也遇到了这个麻烦,我做的是下一行代码:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
就在创建 smpttransport 之前
例如,在您的代码中只需输入:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
var transporter = nodemailer.createTransport('smtps://something%40gmail.com:password@smtp.gmail.com');
@user3985565 说的是对的。但是,如果您使用的是 gmail,您还需要更改 gmail 帐户中的一些设置。更具体地说,您需要在您的 gmail 帐户中 "allow less secure apps"。为此,只需按照以下步骤操作:
- 按原样测试 nodemailer
- node 将抛出错误,gmail 将向您发送一封安全警报电子邮件,通知您 "an unsafe app tried to access your account"
- 在此电子邮件中,您需要单击 "check activity",然后在接下来的屏幕中,您必须取消回答 "yes"
- 您在以下屏幕中的下一次点击是 "more information",然后是 "less secure apps"。
- 最后你会看到一个拨动开关,你必须打开它。
对我有用。
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";