gpt4 book ai didi

javascript - Nodemailer OAuth2 2LO 在 Heroku 部署中失败

转载 作者:行者123 更新时间:2023-12-04 08:59:43 26 4
gpt4 key购买 nike

const { 
EMAIL_FROM,
EMAILS_TO,
USER,
GMAIL_CLIENT_ID,
GMAIL_PRIVATE_KEY
} = process.env;
let transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
type: 'OAuth2',
user: USER,
serviceClient: GMAIL_CLIENT_ID,
privateKey: GMAIL_PRIVATE_KEY,
}
});
此代码在本地环境中发送电子邮件就好了。
我部署到 heroku 时出现错误: Error: Can't generate token. Check your auth optionsheroku 配置变量正确通过,我能说的最好。
谷歌对 heroku 服务器是否有某种 IP 限制?我在这里错过了什么吗?
这是一个带有 Google 服务帐户的 gSuite 帐户。
谢谢

最佳答案

好的。想通了,但把这个问题留在这里,以防有人犯这个愚蠢的错误。
不是heroku问题。这是一个 .env 问题。
显然,当作为 env 变量传递时,私钥中的某些东西会中断。可能它与换行符有关......
Reagrdless,对我有用的解决方案:

  • 使用 .env 文件时,使用双引号:"-----BEGIN RSA PRIVATE KEY-----..."
  • 对于 heroku 配置变量,这似乎不起作用。所以我把它包装在一个 JSON 字符串中。{"key": "-----BEGIN RSA PRIVATE KEY-----...."}然后在应用程序中,JSON.parse(process.env.PRIVATE_KEY).key

  • 如果这对某人有任何帮助,非常欢迎您!

    关于javascript - Nodemailer OAuth2 2LO 在 Heroku 部署中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63624091/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com