最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

邮件从本地主机发送而不是从数字海洋现场直播

运维笔记admin8浏览0评论

邮件从本地主机发送而不是从数字海洋现场直播

邮件从本地主机发送而不是从数字海洋现场直播

我现在用的是Sendgrid API从我的Node.js项目发送电子邮件。当我的本地机器上运行这个工作得很好,但我现在已经部署到数字海洋(Ubuntu的)的邮件没有发送。我已阅读,数字海洋块SMTP通默认端口,你可以明显地通过命令行打开他们,但我找不到一个易于理解的关于如何做到这一点的解释。

const nodemailer = require("nodemailer");
const sendgridTransport = require('nodemailer-sendgrid-transport');

    const transporter = nodemailer.createTransport(sendgridTransport({
      auth: {
          api_key: process.env.SENDGRID_API
      }
    }));

    return transporter.sendMail({
      to: '[email protected]',
      from: email,
      subject: subject,
      html: `<h1>Contact Form</h1>
            <p>Name: ${name}</p>
            <p>Email: ${email}</p>
            <p>${comments}</p>
    `
    });

UPDATE

如果我删除了API密钥.ENV,实际上硬编码在例如:

const transporter = nodemailer.createTransport(sendgridTransport({
  auth: {
      api_key: '12345677788999'
  }
}));

然后我的电子邮件发送。这是我.ENV文件(我使用dotenv)

DB_USER=username
DB_PASSWORD=password
DB_NAME=mydbname
SENDGRID_API=12345677788999

所以,不知道为什么这样做呢?

回答如下:

有你的环境出口这“SENDGRID_API”。那么只有你可以使用process.env.SomeEnvironmentVar。

如果您正在使用PM2。你必须将它添加到生态系统文件。然后,它会使用该配置和启动应用程序。使所有的瓦尔可用。

发布评论

评论列表(0)

  1. 暂无评论