2014-12-22 6 views
1

Мне нужно отправить электронное письмо на кнопку отправки на веб-сайте с помощью expressjs и nodejs, но я не могу отправить электронное письмо в почтовый вызов, так как я получаю следующую ошибку на консоли. Я используя nodemailer для отправки электронной почты здесь.Невозможно отправить электронное письмо с помощью expressjs и nodejs

Ошибка: -

[Error: connect ECONNREFUSED] 
code: 'ECONNREFUSED', 
errno: 'ECONNREFUSED', 
syscall: 'connect' } 

и следующее код: -

var nodemailer = require('nodemailer'); 
var ctrl={ 
    post:function(req,res) 
    { 
     console.log('If this function returns promise it would be handled accordingly.'+req.body.Name); 
       // create reusable transporter object using SMTP transport 
     var transporter = nodemailer.createTransport({ 
     service: 'smtp.gmail.com', 
     auth: { 
     user: '[email protected]', 
     pass: 'password' 
     }, 

    }); 

// setup e-mail data with unicode symbols 
    var mailOptions = { 
     from: '[email protected]', // sender address 
     to: '[email protected]', // list of receivers 
     subject: 'Hello', // Subject line 
     text: 'Hello world', // plaintext body 
     html: '<b>Hello world</b>', // html body 
     replyTo:req.body.Email 
    }; 

// send mail with defined transport object 
    transporter.sendMail(mailOptions, function(error, info){ 
    if(error){ 
     console.log(error); 
    }else{ 
     console.log('Message sent: ' + info.response); 
    } 
    }); 
    return {Name:req.body.Name}; //req.body form post 
     //return {Name:req.query.Name}; //req.query url querystring 
    }, 
    put:function(req,res){ 
     return {}; 
    } 
} 

module.exports = ctrl; 

ответ

0

Вы должны использовать маркер XOAuth2 для подключения к Gmail. Не беспокойтесь, Nodemailer уже не знает о том, что:

var smtpTransport = nodemailer.createTransport('SMTP', { 
    service: 'Gmail', 
    auth: { 
    XOAuth2: { 
     user: smtpConfig.user, 
     clientId: smtpConfig.client_id, 
     clientSecret: smtpConfig.client_secret, 
     refreshToken: smtpConfig.refresh_token, 
     accessToken: smtpConfig.access_token, 
     timeout: smtpConfig.access_timeout - Date.now() 
    } 
    } 
}; 

проверить это link для nodemailer SMTP. Это поможет в разъяснении