2015-07-20 3 views
4

Я пытаюсь отправить по электронной почте протокола SMTP в Gmail, но я получаю сообщение об ошибке:node.js электронной почты не присылают с GMAIL SMTP

Мой адрес электронной почты и пароль правильно, я использую nodemailer для отправка почты;

 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

ответ

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

Попробуйте вышеуказанное, а также выполните следующие действия, которые были сработаны для меня.

Войти в https://www.google.com/settings/security/lesssecureapps и TURN ON Доступ для менее безопасных приложений.

Я надеюсь, что это сработает и для вас.

спасибо.

+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 
    } 
}); 

Если вы не знаете, как создать идентификатор, секретный и маркер, выполните действия, описанные здесь https://medium.com/@pandeysoni/nodemailer-service-in-node-js-using-smtp-and-xoauth2-7c638a39a37e

Смежные вопросы