Ошибка NodeJs при отправке электронной почты с помощью Nodemailer

Я выполнил эти шаги, чтобы настроить nodemailer 1) Разрешить доступ к менее безопасным приложениям в Gmail 2) Написал следующее в app.js

app.post('/reachus/send',function(req,res){
var transporter=nodemailer.createTransport({
    service:'Gmail',
    auth: {
        user:'[email protected]',
        pass:'***'
    }
});

var mailOptions={
    from:'Naveen DK <[email protected]>',
    to:'[email protected]',
    subject:'Email Sent from your website',
    text:'You have a submission with the following details.. Name: '+req.body.name +'Email: '+req.body.email+' Message: '+ req.body.message,
    html:   '<p>You have a submission with the following details..</p><ul><li> Name :'+req.body.name + ' </li><li>Email: '+req.body.email +'</li><li>Message ' + req.body.message +'</li></ul>'
};

transporter.sendMail(mailOptions,function(error,info){
    if(error){
        console.log(error);
        res.redirect('/');
    } else{
        console.log('Message Sent ' + info.response);
        res.redirect('/');
    }
  });
});

3) Как только я нажимаю «Отправить по электронной почте», я получаю следующую ошибку

 { Error: read ECONNRESET
    at exports._errnoException (util.js:1026:11)
    at TLSWrap.onread (net.js:569:26)
    code: 'ECONNECTION',
    errno: 'ECONNRESET',
    syscall: 'read',
    command: 'CONN
 }

Пожалуйста, найдите ниже 2 видео для более подробной информации.

1 https://www.dropbox.com/s/nc1zvivlfpabj6h/HowMyCodeLooksLike.wmv?dl=0

2 https://www.dropbox.com/s/tfsqu6ir90s682h/ErrorOnceSubmissionDone.wmv?dl=0

заранее спасибо

Naveen


person Naveen DINUSHKA    schedule 16.08.2017    source источник
comment
вы не пропустили хост в createTrasport   -  person chetan mekha    schedule 16.08.2017
comment
Я пробовал следующее: Первый метод - передача хоста ---------------- app.post ('/ seekus / send', function (req, res) {var transporter = nodemailer .createTransport ({пул: true, host: 'smtp.gmail.com', порт: 465, secure: true, auth: {user: '', pass: ''}}); -------- -------- Пытался добавить nodemailer-smtp-transport '---------- app.post (' / seekus / send ', function (req, res) {var transporter = nodemailer. createTransport (smtpTransport ({service: 'gmail', auth: {user: '', pass: ''}}); ---- Но не повезло   -  person Naveen DINUSHKA    schedule 16.08.2017
comment
это решило вашу проблему ??   -  person chetan mekha    schedule 16.08.2017


Ответы (2)


используйте приведенный ниже код для отправки электронной почты от nodemailer, внутри функции передайте параметр ur, и вы получите результат ur.

var AppConfig = {
'sendEmailID': 'useremail',
'sendEmailFromName': 'senderemail',
'sendEmailPassword': 'password'

}

function SendEmail(toEmail, Subject, html) {
// create reusable transporter object using the default SMTP transport 
var transporter = nodemailer.createTransport({
    host: 'smtp.gmail.com',
    port: '587',
    auth: {
        user: "username",
        pass: AppConfig.sendEmailPassword
    },
    secureConnection: 'false',
    tls: {
        ciphers: 'SSLv3'
    }

});

// setup e-mail data with unicode symbols 
var mailOptions = {
    from: AppConfig.sendEmailFromName, // sender address 
    to: toEmail, // list of receivers 
    subject: Subject, // Subject line 
    html: html // html body 
};

// send mail with defined transport object 
transporter.sendMail(mailOptions, function (error, info) {
    if (error) {
        return console.log("ERROR----" + error);
    }
    console.log('Message sent: ' + info.response);
});

}

person chetan mekha    schedule 16.08.2017

Получив ответ от @chetan mekha, я изменил свой код следующим образом:

var  smtpTransport=nodemailer.createTransport({
   host: 'smtp.gmail.com',
    port: '587',
    auth: {
        user: "**",
        pass: "**"
    },
    secureConnection: 'false',
    tls: {
        ciphers: 'SSLv3'

    }
});

Но возникла другая ошибка: {[Ошибка: самоподписанный сертификат в цепочке сертификатов] код: 'ECONNECTION', команда: 'CONN'} Но добавление строки rejectUnauthorized: false под шифрами заставило его работать! итоговый фрагмент кода, который у меня сработал, выглядит так ...

var  smtpTransport=nodemailer.createTransport({
   host: 'smtp.gmail.com',
    port: '587',
    auth: {
        user: "**",
        pass: "**"
    },
    secureConnection: 'false',
    tls: {
        ciphers: 'SSLv3',
        rejectUnauthorized: false

    }
});
person Naveen DINUSHKA    schedule 16.08.2017