使用sendgrid Web API发送Nodejs电子邮件

时间:2019-01-21 10:58:24

标签: node.js email sendgrid

我正在开发电子邮件发送服务,可能用于使用 sendgrid Web API 发送批量电子邮件,但是我无法找到可扩展系统的最佳做法。我希望保留所有未能发送的电子邮件的记录,并在发送完所有电子邮件后重试发送给那些失败的电子邮件。我使用的是NodeJ,所以只想知道是否有任何方法可以加快我的流程(例如一次发送多封电子邮件)

2 个答案:

答案 0 :(得分:0)

Sendgrid为node.js集成提供了一个npm软件包,因此您不必重新发明轮子。它以高速率接收消息,因此将您的消息发送到sendgrid不会有问题。您只需将邮件转储到sendgrid中即可。

电子邮件是一种存储转发系统,本质上是异步的。这意味着它无法实时运行。有些邮件会在几秒钟内传递完毕,而其他邮件则要花费数小时(例如,当它们变软时,例如“稍后重试”,即从目标服务器拒绝邮件)。

Sendgrid使用“反弹” API处理此问题。 (并且在他们的Web后端应用程序中具有“反弹”功能)。许多退回是“硬性”退回,这意味着您必须避免尝试再次将邮件发送到该地址。您可以使用退回API来检索退回邮件的列表。您应该从电子邮件列表中删除这些地址,而不要再次发送。 (Sendgrid禁止重复发送无法交付的邮件的用户。)

他们也有一个“无效的电子邮件” API。这类似于“退回”,并返回格式不正确的地址列表,或者如果sendgrid可以告诉它,则返回目标服务器上不存在的地址。同样,您应该从电子邮件列表中删除这些地址。如果它们现在无效,则明天将无效。

Sendgrid提供了有关此主题的各种教程。

答案 1 :(得分:0)

有多种处理方法,我将建议两种对我来说显而易见的方法。

  1. (推荐-轻松),使用称为 queue Async Documentation的异步模块的控制流选项。您可以以对象请求数组的形式提供所有请求,然后将并发设置更改为100,它将一次并发运行100个工作程序,并记录错误以建立独立的机制,并且一旦所有值被单独处理。

  2. 使用node.js本机方法生成多个worker。