首页 > 解决方案 > 邮件中的证书链错误中的自签名证书

问题描述

我试着写一个简单的邮件程序。我使用了节点邮件程序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");
});

在此处输入图像描述

标签: node.jssmtpnodemailer

解决方案


我刚才遇到了同样的问题,请尝试查看下面的链接以获得更详细的回复。

错误:证书链中的自签名证书 Nodejs nodemailer express

使用 tls.rejectUnauthorized = false 来帮助避免该问题。

例子:

        let transporter = nodemailer.createTransport({
            service: 'gmail',
            auth: {
                user: 'myemail@gmail.com', 
                pass: 'password' 
            },
            tls: {
                rejectUnauthorized: false
            }
        });

推荐阅读