我正在使用 nodemailer 从我的 Gmail 帐户发送电子邮件。我正在使用我的 Gmail ID 和密码
但它正在显示
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 z124-20020a633382000000b005c66b54476bsm6420941pgz.63 - gsmtp
at SMTPConnection._formatError (E:\PROJECTS\Neha\orange_rentals\backend\node_modules\nodemailer\lib\smtp-connection\index.js:790:19)
at SMTPConnection._actionAUTHComplete (E:\PROJECTS\Neha\orange_rentals\backend\node_modules\nodemailer\lib\smtp-connection\index.js:1564:34) at SMTPConnection.<anonymous> (E:\PROJECTS\Neha\orange_rentals\backend\node_modules\nodemailer\lib\smtp-connection\index.js:546:26)
at SMTPConnection._processResponse (E:\PROJECTS\Neha\orange_rentals\backend\node_modules\nodemailer\lib\smtp-connection\index.js:969:20)
at SMTPConnection._onData (E:\PROJECTS\Neha\orange_rentals\backend\node_modules\nodemailer\lib\smtp-connection\index.js:755:14)
at TLSSocket.SMTPConnection._onSocketData (E:\PROJECTS\Neha\orange_rentals\backend\node_modules\nodemailer\lib\smtp-connection\index.js:193:44)
at TLSSocket.emit (node:events:513:28)
at TLSSocket.emit (node:domain:489:12)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
我还没有为 gmail 帐户启用双向身份验证。
我尝试从此链接获取应用程序密码,但安全选项卡中没有谷歌文档页面上提到的应用程序密码之类的东西。
https://myaccount.google.com/u/7/?hl=en&utm_source=OGB&utm_medium=act
这是我正在使用的代码
constructor(private logger: AppLogger) {
const mailConfig = {
host: process.env.MAIL_HOST,
port: 465,
auth: {
user: process.env.MAIL_FROM,
pass: process.env.MAIL_FROM_PASSWORD
}
};
console.log("file: mail.service.ts:27 ~ MailService ~ constructor ~ mailConfig:", mailConfig);
try {
this.transporter = nodemailer.createTransport(mailConfig);
} catch (err) {
this.logger.error("Unable to connect mail account");
}
}
sendMail(mail: MailOptionsDto) {
const mailOptions = {
from: process.env.MAIL_FROM,
to: mail.toList,
subject: mail.subject,
html: mail.body
};
if (mail.attachments && mail.attachments.length) {
mailOptions["attachments"] = mail.attachments;
}
return this.transporter.sendMail(mailOptions);
}
一般来说,Gmail 不是与 Nodemailer 一起使用的首选服务,因为它针对的是真实用户,而不是自动/编程使用。有关更多信息,请参阅Nodemailer with Gmail。这里还有 Nodemailer 支持的替代电子邮件服务列表众所周知的服务。
我使用了Zoho mail,效果很好。确保在
from
的 mailOptions
字段中使用相同的 Zoho 电子邮件地址,否则会引发错误。
var transport = nodemailer.createTransport({
host: 'smtp.zoho.eu',
port: 465,
secure: true, //ssl
auth: {
user:process.env.EMAIL,
pass:process.env.EMAIL_PASSWORD
}
});
var mailOptions = {
from: process.env.EMAIL,
to: req.body.email,
subject: "Subject",
html: ""
};