我试着写一个简单的邮件程序。我使用了节点邮件程序和 SMTP协议模块。我执行了。但它显示如下错误:
邮件中的证书链错误中的自签名证书
问题是什么?
var express = require('express');
var app=express();
var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');
app.get('/nodemail', function(req, res, next) {
var transporter = nodemailer.createTransport(smtpTransport({
service: 'Gmail',
host: 'smtp.gmail.com',
port: 465,
auth: {
user: 'demodevelopers6@gmail.com',
pass: '***********'
}
}));
var link="https://codeforgeek.com/2016/06/node-js-redis-tutorial-building-email-verification-system/";
transporter.sendMail({
from: "demodevelopers6@gmail.com",
subject:"sailjstutorials" ,
to: "vignesh.mack03@gmail.com",
html : "Hello"+"vignesh <br> Please Click on the link to verify your email.<br><a href="+link+">Click here to verify</a>"
}, function(error, info) {
if (error) {
return console.log(error);
}
console.log('Message %s sent: %s', info.messageId, info.response);
console.log("Mail sent successfully");
res.write("Mail sent successfully");
});
});
app.listen(8086,function()
{
console.log("port listening");
});
答案 0 :(得分:1)
我刚才遇到了同样的问题,请尝试查看下面的链接以获得更详细的答复。
Error: self signed certificate in certificate chain Nodejs nodemailer express
使用tls.rejectUnauthorized = false可以避免该问题。
示例:
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'myemail@gmail.com',
pass: 'password'
},
tls: {
rejectUnauthorized: false
}
});