web-dev-qa-db-ja.com

node.jsメールがGmail SMTPで送信されない

Gmail 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

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

上記を試して、また、私のために働いた次のことをしてください。

https://www.google.com/settings/security/lesssecureapps およびTURN ONへのログイン安全性の低いアクセスアプリ。

私もそれがあなたのために働くことを願っています。

ありがとうございました。

32
pavani sri
  1. まず、設定を有効にして、使用しているGmailアカウントの安全性の低いアプリを許可する必要があります。リンクは次のとおりです。 https://myaccount.google.com/lesssecureapps

  2. 第二に、「表示ロック解除captchオプション」のアクセスを許可します(Googleアカウントへのアクセスを許可します)。リンクは次のとおりです。 https://accounts.google.com/DisplayUnlockCaptcha

12
Jaspreet kaur

https://myaccount.google.com/lesssecureapps

安全性の低いアプリアクセスで、このリンクをクリックします。そのGmailがデバイスにメールを送信した後、それがあなたであることを確認します。ハッピーコーディングが完了しました

2
user8470132

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

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

これを試して。

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