node.js - 使用 ZEIT Now 设置环境变量时 Nodemailer 无效登录 535

标签 node.js nodemailer vercel

当我对 Nodemailer 使用此配置时:

const transporter = nodemailer.createTransport({
  service: process.env.EMAIL_SERVICE,
  auth: {
    user: process.env.EMAIL_USER,
    pass: process.env.EMAIL_PASSWORD
  }
});

变量:

EMAIL_SERVICE: 'Hotmail',
EMAIL_USER: 'MyEmail@outlook.com',
EMAIL_PASSWORD: 'MyPassword'

我像这样发送电子邮件:

transporter.sendMail({
  to: email,
  subject: 'Confirmar cambio de contraseña',
  html: `Para cambiar la contraseña entre a <a href="${url}">${url}</a> <br> Este token solo dura 24 horas.`
});

在开发中它工作得很好,但是当我在 Now 中部署它时,它会抛出这个错误:

enter image description here

如何解决?

这里有一个关于此的小例子:

https://github.com/MontoyaAndres/NowProblemNodemailer

现在:

https://nowemail-owcypiqzsr.now.sh

谢谢:)

最佳答案

您可能需要添加 secret然后将环境变量添加到您的 now.json 中。

运行这些命令一次,在您的 ZEIT Now 帐户中添加 secret (如果您有多个帐户,请使用 now switch)。

now secret add email-service 'Hotmail'
now secret add email-user 'MyEmail@outlook.com'
now secret add email-password 'MyPassword'

然后将 env 键添加到您的 now.json 文件中,如下所示:

{
  "version": 2,
  "builds": [/* your builds go here */],
  "env": {
    "EMAIL_SERVICE": "@email-service",
    "EMAIL_USER": "@email-user",
    "EMAIL_PASSWORD": "@email-password"
  }
}

关于node.js - 使用 ZEIT Now 设置环境变量时 Nodemailer 无效登录 535,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51664082/

相关文章:

next.js - 添加到 next.config.js 的 secret 安全性

reactjs - 由于 '' 导出在以下路径上遇到错误,因此下一个 JS 构建失败”

javascript - 通过编辑文件来通过 Node.js 更改 JSON 中的对象值

node.js - Electron (原子壳)Module.require的源代码在哪里?

javascript - 测试 axios 请求的 header

node.js - 激活扩展 `ms-vscode.wordcount` 失败 : Cannot find module 'd:/VSCode/vscode-wordcount/out/extension'

email - 向自己发送电子邮件,但让我回复另一封电子邮件

javascript - 如何从 Nodejs 应用程序以 cronjob 的形式发送 ejs 文件作为 HTML 电子邮件

express - Nodemailer 传输创建推荐

javascript - 类型 '{}' 不可分配给类型 'ReactNode'