web-dev-qa-db-fra.com

les e-mails de node.js ne sont pas envoyés avec gmail smtp

J'essaie d'envoyer l'email gmail smtp mais j'obtiens l'erreur:

Mon e-mail et mon mot de passe sont corrects J'utilise le nodemailer pour envoyer le courrier;

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

dans le journal, je reçois l'erreur:

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

J'essaie un lien mais cela ne fonctionne pas:
https://laracasts.com/discuss/channels/general-discussion/help-email-doesnt-get-sent-with-gmail-smtp

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

Essayez ce qui précède et faites également ce qui a fonctionné pour moi.

connectez-vous à https://www.google.com/settings/security/lesssecureapps et ALLUMER Accès pour moins sécurisé applications.

J'espère que cela fonctionnera aussi pour vous.

Je vous remercie.

32
pavani sri
  1. Tout d'abord, vous devez activer les paramètres pour autoriser les applications moins sécurisées pour le compte gmail que vous utilisez. Voici le lien: https://myaccount.google.com/lesssecureapps

  2. Deuxièmement, autorisez l'accès à l'option "Display Unlock captch" (autorisez l'accès à votre compte Google). Voici le lien: https://accounts.google.com/DisplayUnlockCaptcha

12
Jaspreet kaur

https://myaccount.google.com/lesssecureapps

Cliquez sur ce lien, sur votre accès à l'application moins sécurisé. donc après que gmail enverra un e-mail à votre appareil, confirmez qu'il s'agit bien de vous. Vous avez terminé le codage heureux

2
user8470132

Si vous utilisez OAuth2 et que vous rencontrez le problème ci-dessus, la configuration de mon transporteur comme indiqué ci-dessous a résolu mon problème.

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

Si vous ne savez pas comment générer l'identifiant, le secret et le jeton, suivez les étapes ici https://medium.com/@pandeysoni/nodemailer-service-in-node-js-using-smtp-and- xoauth2-7c638a39a37e

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

Essaye ça.

0
Aravinth
let transporter = nodeMailer.createTransport({
    Host: 'smtp.gmail.com',
    port: 587,
    secure: true,
    auth: {
        user: '[email protected]',
        pass:'your gmail pass'
    }
});
0
gowtham