2015-07-20 99 views
4

我试图发送电子邮件Gmail的SMTP,但我得到的错误发送发送邮件;node.js的电子邮件没有得到与Gmail SMTP

 var nodemailer = require('nodemailer'); 

       // create reusable transporter object using SMTP transport 
       var transporter = nodemailer.createTransport({ 
        service: 'Gmail', 
        auth: { 
         admin: 'myuseremail.com', 
         pass: 'password' 
        } 
       }); 

       var mailOptions = { 
        from: 'sender address', // sender address 
        to: to, // list of receivers 
        subject: 'Password Reset', // Subject line 
        html: 'Your one time password is : <b>' + temporaryPassword + ' </b>' // html body 
       }; 

       transporter.sendMail(mailOptions, function (error, info) { 
        console.log(error,info); 
       } 

在日志中,我发现了错误:

{ 
    [Error: Invalid login] 
     code: 'EAUTH', 
     response: '535-5.7.8 Username and Password not accepted. Learn more at\n535 5.7.8 https://support.google.com/mail/answer/14257 k5sm20957041pdo.48 - gsmtp', 
     responseCode: 535 
    } 

我尝试一些链接,但不工作:
https://laracasts.com/discuss/channels/general-discussion/help-email-doesnt-get-sent-with-gmail-smtp

回答

1
var transporter = nodemailer.createTransport({ 
    service: 'Gmail', 
    auth: { 
    user: '[email protected]', 
    pass: 'password' 
    } 
}); 

试试这个。

10
var transporter = nodemailer.createTransport({ 
    service: 'Gmail', 
    auth: { 
    user: '[email protected]', 
    pass: 'password' 
    } 
}); 

请尝试上面的内容,并执行以下为我工作的内容。

登录到https://www.google.com/settings/security/lesssecureapps开启访问不太安全的应用程序。

我希望它也适用于你。

谢谢。

+0

如果您启用2F认证,那么“不够安全的应用”功能将被禁用。您需要生成应用程序密码。为此,请按照以下步骤操作:https://support.google.com/accounts/answer/185833 –

0

如果您使用OAuth2并且遇到上述问题,请按照下面所示配置我的传输器解决了我的问题。

const transporter = nodemailer.createTransport({ 
    host: 'smtp.gmail.com', 
    port: 465, 
    secure: true, 
    auth: { 
    type: 'OAuth2', 
    user: process.env.MAIL_USER, 
    clientId: process.env.GOOGLE_CLIENT_ID, 
    clientSecret: process.env.GOOGLE_CLIENT_SECRET, 
    refreshToken: process.env.GOOGLE_CLIENT_REFRESH_TOKEN 
    } 
}); 

如果您不知道如何生成的ID,秘密和令牌,按照下列步骤进行https://medium.com/@pandeysoni/nodemailer-service-in-node-js-using-smtp-and-xoauth2-7c638a39a37e