node.js email doesn't get sent with gmail smtp

Vishnu Mishra picture Vishnu Mishra · Jul 20, 2015 · Viewed 32.5k times · Source

I'm trying to send the email gmail smtp but I'm getting the error:

My email and password is correct I'm using the nodemailer for sending the mail;

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

in log i'm getting the error:

    {
     [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
    } 

I try some link but that doesn't work:
https://laracasts.com/discuss/channels/general-discussion/help-email-doesnt-get-sent-with-gmail-smtp

Answer

pavani sri picture pavani sri · Apr 6, 2016
var transporter = nodemailer.createTransport({
  service: 'Gmail',
  auth: {
    user: '[email protected]',
    pass: 'password'
  }
});

Try the above, and do the following which worked for me.

Login to https://www.google.com/settings/security/lesssecureapps and TURN ON Access for less secure apps.

I hope it will work for you too.

Thank you.