2014-12-22 4 views
1

expressjs 및 nodejs를 사용하는 웹 사이트의 제출 버튼에 전자 메일을 보내야하지만 콘솔에서 다음 오류가 발생하는 경우 게시 통화에서 전자 메일을 보낼 수 없습니다. nodemailer를 사용하여 여기에 이메일을 보냅니다.expressjs 및 nodejs를 사용하여 전자 메일을 보낼 수 없습니다.

오류 : - :

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

당신은 Gmail로 연결하기 위해 XOAuth2 토큰을 사용한다 -

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

와 다음은 코드입니다. 걱정은 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() 
    } 
    } 
}; 

체크 nodemailer SMTP이 link. 설명에 도움이 될 것입니다.