【问题标题】:Nodemailer: response: '535-5.7.8 Username and Password not acceptedNodemailer:响应:\'535-5.7.8 用户名和密码不被接受
【发布时间】:2022-08-12 06:39:49
【问题描述】:

随着 Google 于 2022 年 5 月 30 日关闭 Less secure apps,现在将 Gmail 与 nodemailer 一起使用会引发错误,显示为 response: \'535-5.7.8 Username and Password not accepted. Learn more at\\n\' + \'535 5.7.8 https://support.google.com/mail/?p=BadCredentialsNodemailer docs 似乎尚未更新关于安全性较低的应用程序的问题,但建议使用其他交付提供商。我以前只是打开 LSA,将凭据存储在环境变量中,然后让 nodemailer 做它的事情,通过这个更改,如何仍然可以将 gmail 与 nodemailer 一起使用?目前还没有 youtube 教程来解决这个问题,查看 google documentation,它没有显示 nodemailer

    标签: email gmail credentials nodemailer


    【解决方案1】:

    通过在 Google 帐户中创建应用程序密码来解决它。您必须激活两步验证。

    【讨论】:

    • 您是否测试过它是否有效?此更改的重点是谷歌不希望我们使用登录名和密码来访问用户帐户。更好的选择是使用 Xoauth2
    • 是的,我做了测试,大约有4个api,更正后一切都很好
    • @GustavoPinto 已经测试并实现了它。有用。多谢,伙计
    • @GustavoPinto 它通过用新的 -16 个字符生成的应用程序密码替换旧密码来工作。感谢您解决此问题!
    • 另一个提示。在您激活两步验证之前,无法看到应用密码。它出现在它下面之后
    【解决方案2】:

    您应该查看xoauth Nodemailer 似乎支持服务 oauth 选项

    let transporter = nodemailer.createTransport({
      host: "smtp.gmail.com",
      port: 465,
      secure: true,
      auth: {
        type: "OAuth2",
        user: "user@example.com",
        clientId: "000000000000-xxx0.apps.googleusercontent.com",
        clientSecret: "XxxxxXXxX0xxxxxxxx0XXxX0",
        refreshToken: "1/XXxXxsss-xxxXXXXXxXxx0XXXxxXXx0x00xxx",
        accessToken: "ya29.Xx_XX0xxxxx-xX0X0XxXXxXxXXXxX0x",
        expires: 1484314697598,
      },
    });
    

    【讨论】:

    • 我使用 OAuth2 解决了我遵循本教程 dev.to/chandrapantachhetri/… 的问题
    • Xoauth2 确实是更安全的选择。不知道应用程序密码将继续工作多长时间。我很高兴你让它工作
    【解决方案3】:
    1. 打开邮件> 设置 > 查看所有设置 > 转发和 POP/IMAP.
    2. 启用流行音乐下载: &使能够IMAP 访问:(然后保存设置) .enter image description here
    3. 打开您的 Gmail 帐户> 安全 > 两步验证(启用它)。
    4. 转到应用密码 > 选择设备 > 选择应用程序(您可以创建任何自定义应用程序).
    5. 复制应用程序密码并在您的应用程序中使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-22
      • 2021-08-05
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      相关资源
      最近更新 更多