当前位置: 首页 > 知识库问答 >
问题:

让NodeEmailer使用不同的gmail帐户发送电子邮件

昝枫
2023-03-14

我成功通过passportjs验证,但NodeEmailer只发送一封电子邮件,这是控制台中使用的一封电子邮件。云谷歌。

当我尝试其他gmail帐户时,我得到这个错误:

错误:无效登录:535-5.7.8不接受用户名和密码。在535 5.7.8了解更多信息https://support.google.com/mail/?p=BadCredentialsu6sm13346885wrp。0-SMTPConnection处的gsmtp_SMTPConnection处的formatError(/var/www/html/Recrute/node\u modules/nodemailer/lib/smtp connection/index.js:784:19)_SMTPConnection上的actionAUTHComplete(/var/www/html/Recrute/node\u modules/nodemailer/lib/smtp connection/index.js:1536:34)。(/var/www/html/Recrute/node\u modules/nodemailer/lib/smtp connection/index.js:1515:26)位于SMTPConnection_SMTPConnection上的processResponse(/var/www/html/Recrute/node\u modules/nodemailer/lib/smtp connection/index.js:947:20)_TLSSocket上的onData(/var/www/html/Recrute/node\u modules/nodemailer/lib/smtp connection/index.js:749:14)。SMTP连接_位于TLSSocket的onSocketData(/var/www/html/Recrute/node\u modules/nodemailer/lib/smtp connection/index.js:189:44)。在TLSSocket的readableAddChunk(内部/流/可读。js:309:12)的addChunk(内部/流/可读。js:284:9)发出(events.js:376:20)。可读。推送(internal/streams/readable.js:223:10){代码:“EAUTH”,响应:“535-5.7.8不接受用户名和密码。有关详细信息,请访问535 5 5.7.8”https://support.google.com/mail/?p=BadCredentialsu6sm13346885wrp。0-gsmtp,响应代码:535,命令:“AUTH XOAUTH2”}

我添加了所有电子邮件以测试用户。

代码

      type: 'oauth2',
      user: req.user.email,
      clientId: clientId,
      clientSecret: clientSecret,
      refreshToken: refreshToken,
  };
  
  var mailOptions = {
      from: req.user.email,
      to: 'email@gmail.com',
      subject: req.query.sbjct,
      text: req.query.msg,
      html: req.query.msg,
  };
  
  var transporter = nodemailer.createTransport({
      service: 'gmail',
      auth: auth,
  });
  
  transporter.sendMail(mailOptions, (err, res) => {
      if (err) {
          return console.log(err);
      } else {
          res.send('done !');
      } ```

共有1个答案

刘英彦
2023-03-14

Gmail不完全允许从第三方应用程序发送邮件。因此,要从第三方应用程序发送邮件(例如使用nodemailer的应用程序),您需要转到该gmail帐户设置并降低该帐户的gmail安全性[不太安全][1]。nodemailer文档

你的创意应该是这样的

    let transporter = nodemailer.createTransport({
    host: "smtp.gmail.email",
    port: 587,
    secure: false, // true for 465, false for other ports
    auth: {
      user: your username, // generated gmail user
      pass: your password, // generated gmail password
    },
  });
 类似资料:
  • 使用NodeEmailer,如何使用别名gmail帐户发送电子邮件?还是组google suite服务器帐户? 比如说: 我的真实帐户: 我将使用nodemailer通过我的别名帐户或组帐户发送消息。 我的别名帐户:< code > myaliascount @ domain . com 我的群帐户:< code > my group account @ domain . com 这可能吗?

  • 我正在开发一个WordPress插件,其中我使用PHP邮件功能发送电子邮件,但是邮件功能有一个问题。它向我的非Gmail帐户发送电子邮件,但它不会向我的Gmail帐户发送电子邮件。我正在使用以下代码: 是我的代码有问题,还是邮件功能有问题?如果有其他方法可以发送电子邮件,请给我链接。

  • 问题内容: 我正在从Java应用程序向Gmail帐户发送邮件。我曾经使用过Java Mail API,并且运行良好。但是是否可以在不使用Java中的邮件API的情况下发送电子邮件? 我的意思是仅使用套接字: 但它不起作用,它不会发送邮件。谁能告诉我可能是什么问题? 问题答案: 这是一个很好的例子: -> http://www.java2s.com/Code/Java/Network-Protoco

  • 我有一个web应用程序,目前可以从gsuite域中的“无回复”式电子邮件地址发送自动密码重置电子邮件。目前,它只需通过SMTP(使用TLS)使用用户名和密码即可工作,然而,为了实现这一点,GSuite管理员(不是我)必须启用LSA。 我相信大多数人都知道,谷歌将在明年逐步淘汰它,所以展望未来,我将不得不使用OAuth2和Gmail应用编程接口(我想)。我对这一点还很陌生,所以原谅我的无知,但是虽然

  • 我正在尝试从应用程序发送电子邮件。 问题是Gmail不允许我进行身份验证,因为位置不寻常——当然,每个应用程序都安装在其他位置。 我的代码(使用Javax): 该代码在我的测试设备上运行良好,但在其他使用我的应用程序的设备上崩溃。 我得到的错误:javax.mail.身份验证失败异常:534-5.7.14请通过534-5.7.14您的网络浏览器登录,然后重试。534-5.7.14在534 5.7.

  • 我知道这里已经有很多关于向hotmail发送电子邮件的问题了。我已经通读了它们,以及过去几周的许多在线帖子,但仍然无法解决这个问题。 我遇到的问题是,我无法向拥有hotmail电子邮件地址的客户发送电子邮件。我可以向雅虎发送电子邮件,也可以向gmail发送电子邮件(尽管这些邮件似乎进入了垃圾文件夹),但是当我向hotmail电子邮件地址发送电子邮件时,它们似乎永远不会到达。 我在PHP Symfo