繁体   English   中英

Nodemailer 抛出错误 Invalid login: 534-5.7.14

[英]Nodemailer throws error Invalid login: 534-5.7.14

我在尝试从一个 Gmail 帐户向另一个帐户发送电子邮件时发现此错误。 如何解决这个错误? 帮我搞定。

出现错误:

登录无效:534-5.7.14 请通过 534-5.7.14 您的网络浏览器登录,然后重试。 534-5.7.14 了解更多信息,请访问 534 5.7.14 https://support.google.com/mail/answer/78754 a90-v6sm7292588pfg.106 - gsmtp

我已经尝试过允许不太安全的应用程序打开,但仍然是同样的错误。 当我在本地机器上运行应用程序时它工作正常但在服务器机器上出现此错误

请帮我

您可能需要允许访问您的 Gmail 帐户。

https://accounts.google.com/b/0/DisplayUnlockCaptcha

编辑(在您发表评论后)

// 使用默认的 SMTP 传输创建可重用的传输器对象

transporter = nodemailer.createTransport({
    host: 'smtp.gmail.com',
    port: 465,
    secure: true, 
    auth: {
        user: 'yourEmail', 
        pass: 'yourPassword' 
    }
});

您的“nodemailer.createTransport”应该看起来类似。

如果您使用 GMAIL 服务作为运输工具,

第 1 步:登录到您的 gmail 帐户。

第 2 步:在您的 gmail 帐户上启用不太安全的应用程序访问和/或 DisplayUnlockCaptcha。

第 3 步:按照有关使用应用程序密码登录的 6 步指南进行操作

第 4 步:将您的运输商密码替换为您从上述第 3 步获得的 16 个字符生成的应用程序密码。

这四个简单的步骤解决了我的问题。

大多数情况下,这只是因为两个主要问题

  1. 我还没有在安全下启用谷歌帐户中不太安全的选项
  2. 您应该允许第三方应用程序访问 google 帐户。 请参阅https://accounts.google.com/DisplayUnlockCaptcha

我遇到了同样的问题,因为在本地环境中使用邮递员客户端可以正常工作。

但是给出错误或我配置的 aws-linux vpc。

所以这可以固定为:

let nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 587,
ignoreTLS: false,
secure: false,
auth: {
    user: "your mail",
    pass: 'your password'
}
});
module.exports = transporter;

请确保您已允许访问您的帐户,并且应打开不太安全的应用程序设置。

您只需打开以下链接并启用以允许您的谷歌帐户访问。

这将允许 Google 在登录新设备或应用程序时完成这一额外步骤。

低安全性方法是暂时的,我无法在生产中使用它,但我找到了一篇文章,通过示例代码在这里使用 OAuth 连接到 GMail 变得更加容易,而且效果很好

对于 gmail,您需要允许 2 步授权,然后设置 16 位应用密码。 将该密码与您的 gmail 地址一起使用,而不是您的常规密码。 去应该不错!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM