nodejs 不接受 gmail 的用户名和密码

问题描述 投票:0回答:1

我正在使用 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);
  }
node.js gmail nodemailer
1个回答
0
投票

一般来说,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: ""
};
© www.soinside.com 2019 - 2024. All rights reserved.