Я пытаюсь отправить электронные письма с помощью 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' }