SendGrid-nodejs 还是 Nodemailer?

SendGrid-nodejs or Nodemailer?

至少有两种方法可以使用 SendGrid 从 Nodejs 发送电子邮件:

  1. Sendgrid 提供了一个名为 "SendGrid-nodejs." 的 Nodejs 库,他们积极支持 Sendgrid-Nodejs(最后更新于 29 天前)。
  2. Nodemailer supports sendgrid and seems to be extremely popular. SendGrid posted an article about using this combination: Sending email with Nodemailer and Sendgrid.

编辑 2

SendGrid 从今天起停止支持 nodemailer-sendgrid-transport。

因此,如果您现在开始一个项目,我建议您使用 sendgrid-nodejs。


原问题:

编辑 使问题不那么基于意见: 每种方法的优缺点是什么?我已经用谷歌搜索了好几天,但没有看到两者的任何比较。还有另一个 Whosebug question 要求区分两者(以及其他几件事),但没有得到答复。所以这个问题的答案肯定会对其他人有所帮助。

我的具体用法,以防有助于集中解答: 我想允许 iPhone 应用程序的用户邀请其他人使用该应用程序。他们将在应用程序中看到默认的邀请文本,并可以对其进行自定义。自定义文本被发送到我的 Nodejs 服务器并添加到作业队列中。在处理队列时,将发送电子邮件。我希望电子邮件看起来不错,所以我想使用 HTML 电子邮件模板(和纯文本备用正文)。

规模方面,开始时规模很小,但如果应用成功,可能会迅速扩大规模。

好吧,sendgrid-nodejs 是一个更受欢迎的存储库。

但是,Nodemailer 是使用 NodeJS 发送电子邮件的最受欢迎的模块。我已经用了几个月了,我很满意。

如果您担心您的应用程序的未来,您应该考虑到 Nodemailer 不仅用于 Sendgrid,还有很多其他竞争对手。因此,如果您在使用 Sendgrid 时遇到问题,您可以轻松切换到另一个电子邮件传送服务,而无需学习不同的 API.

所以我建议您使用 nodemailer-sendgrid-transport,如果您发现错误,请通过 PR 修复它们:P

你会发现你可以使用任一库实现你想做的事情(nodemailer-sendgrid-transport 也是由 SendGrid 编写的!)但是你建议你使用 HTML 模板和纯文本替代方案,您可能想看看使用 SendGrid Node JS 库,因为它可以让您更轻松地访问一些更高级的功能,例如:

Template Engine - 这允许您在 SG 仪表板内而不是在您的代码中管理 HTML 和纯文本模板 - 这对于进行快速更改非常方便,无需重新部署您的应用程序投入生产。

Advanced Suppression Management - 这允许您对用户可以退订的电子邮件进行分组,而不是完全退订所有内容。

值得注意的是,您仍然可以将这些功能与 NodeMailer 和 nodemailer-sendgrid-transport 一起使用,但 SendGrid NodeJS 库直接公开了这些功能的方法。

就像我说的,您可以使用任何一个来实现您想要的,但我认为值得指出一些 SendGrid 特定的东西。