19

SendGrid 开发 QA 环境的最佳方法是什么?我们想要非生产环境,我们可以通过 API 存储和测试我们的电子邮件模板。SendGrid 沙盒设置不允许实际发送电子邮件。

除非有更好的方法,否则我们计划以每月 9.95 美元的价格创建新的 SendGrid 基本帐户,最多可接收 4 万封电子邮件。通过这种方法,我们的 Dev 和 QA 环境将拥有不同的帐户,我们可以使用这些帐户进行测试和部署。

4

2 回答 2

5

我知道这是一个老问题,但我想把我们的解决方案留在这里,以防其他人需要它。

Sendgrid 不允许拥有多个环境,但您可以使用它们的动态模板测试不同的内容。

在您的模板上,您可以设置一些条件if/else,如下所示:

{{#if isDev}}
  <p>This is development</p>
{{else}}
  <p>This is prod</p>
{{/if}}

然后,当您调用 API 发送邮件时,您应该像这样传递 var(注意:这是一个 Node 示例):

sendgrid.send({
  from: EMAIL_FROM,
  templateId: TEMPLATE_ID,
  personalizations: [{
    dynamic_template_data: {
      isDev:(process.env.ENV === 'development'),
    },
  }],
});

显然,不同的环境是不一样的,因为我们没有测试您将在 PRO 上发送的最终电子邮件,因为您的指标会混合,如果您测试太多,它会影响您的发送配额。但是,如果您像我们一样不时地测试微小的更改,它将起作用。

于 2019-04-03T08:23:38.587 回答
2

SendGrid 没有 UAT(用户验收测试)类型的环境,因此单独的用户是他们建议的解决方案。

我的公司采取的方法是在每个环境中拥有不同的 SendGrid 用户。它允许 API 访问和帐户分离,因此在其他环境中不使用生产帐户。可以使用免费帐户进行本地或开发工作的测试,并使用付费帐户进行暂存、QA 或 Beta 类型环境的测试。SendGrid 定价具有所有级别的 API 访问权限。有时,使用 SendGrid 测试最棘手的事情是您对子用户的限制,这在较低的定价层中受到限制。

于 2020-11-19T17:42:36.197 回答