Отправка писем с помощью nodemailer без включения меньшего контроля доступа - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь отправить электронные письма с помощью nodemailer в Nodejs. Ниже приведены шаги, которые я выполнил.

const nodemailer = require('nodemailer');
const { google } = require("googleapis");
const OAuth2 = google.auth.OAuth2;

const oauth2Client = new OAuth2(
     "here client id", // ClientID
     "here secret id", // Client Secret
     "https://developers.google.com/oauthplayground" // Redirect URL
);

oauth2Client.setCredentials({
     refresh_token: "Here is the refresh token"
});
const accessToken = oauth2Client.getAccessToken(); // This is to generate new access token when its expired

Выше приведены требования, а приведенный ниже код предназначен для создания nodemailer

const transporter = nodemailer.createTransport({
   service: "gmail",
   tls: {
       rejectUnauthorized: false
   },
   auth: {
       type: "OAuth2",
       user: "mail@domain.com", 
       clientId: "clientid",
       clientSecret: "client secret",
       refreshToken: "refreshtoken",
       accessToken: accessToken // It will get the above generate access token 
   }
});

var mailOptions = {
    from: "mail@domain.com",
    to: "email@domain.com",
    subject: 'Nodemailer Email',
    text: mailtext // Mail Text
};

transporter.sendMail(mailOptions, function(error, info){            
    console.log("Info",info);
    if (error) {
       console.log(error);

    } else {
       console.log('Email sent: ' + info.response);
       // res.status(200).send("success");
    }
});

Я заметил, что когда я пытаюсь отправить письмо используя Gmail (example@gmail.com), он работает отлично. Но когда я пытаюсь проделать ту же процедуру с другой почтой, домен которой отличается от Gmail (example@domain.com). Здесь домен поменяется. Я получаю сообщение об ошибке

{ Error: Invalid login: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/?p=BadCredentials v14sm8987970ilm.66 - gsmtp
    at SMTPConnection._formatError (/srv/node_modules/nodemailer/lib/smtp-connection/index.js:784:19)
    at SMTPConnection._actionAUTHComplete (/srv/node_modules/nodemailer/lib/smtp-connection/index.js:1523:34)
    at SMTPConnection._responseActions.push.str (/srv/node_modules/nodemailer/lib/smtp-connection/index.js:1502:26)
    at SMTPConnection._processResponse (/srv/node_modules/nodemailer/lib/smtp-connection/index.js:942:20)
    at SMTPConnection._onData (/srv/node_modules/nodemailer/lib/smtp-connection/index.js:749:14)
    at TLSSocket.SMTPConnection._onSocketData.chunk (/srv/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
  code: 'EAUTH',
  response: '535-5.7.8 Username and Password not accepted. Learn more at\n535 5.7.8  https://support.google.com/mail/?p=BadCredentials v14sm8987970ilm.66 - gsmtp',
  responseCode: 535,
  command: 'AUTH XOAUTH2' }
...