SendGrid-nodejs或者Nodemailer?

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

  1. Sendgrid提供了一个名为“SendGrid-nodejs”的Nodejs库。 他们正在积极支持Sendgrid-Nodejs(29天前的最新更新)。
  2. Nodemailer支持sendgrid,似乎非常受欢迎。 SendGrid发布了一篇关于使用这个组合的文章: 使用Nodemailer和Sendgrid发送电子邮件 。

编辑2

SendGrid已经结束了对nodemailer-sendgrid-transport的支持。

所以,如果你现在开始一个项目,我会build议使用sendgrid-nodejs。


原始问题:

编辑以减less问题的意见:每种方法有哪些优缺点? 我search了几天,没有看到两者的任何比较。 还有另外一个StackOverflow的问题,要求区分这两者之间的区别(其他几件事情),没有得到答复。 所以这个答案肯定会帮助其他人。

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

从规模上看,这将开始非常小,但如果应用程序成功可以迅速扩大规模。

你会发现你可以使用任何一个库来实现你想做的事情( nodemailer-sendgrid-transport也是由SendGrid编写的!)但是,如果你build议你想使用HTML模板和纯文本替代方法,你可能需要看看使用SendGrid Node JS库,因为它可以让你更容易地访问一些更高级的function,比如:

模板引擎 – 它允许您在SG仪表板内部而不是在代码中pipe理HTML和纯文本模板 – 这可以方便快速地进行更改,而无需将应用程序重新部署到生产环境。

高级抑制pipe理 – 允许您将用户可以取消订阅的电子邮件分组,而不是完全取消订阅。

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

就像我说的,你可以实现你想要的,但我认为值得指出一些SendGrid的具体事情。

那么,sendgrid-nodejs是一个比较stream行的版本库。

但是,Nodemailer是使用NodeJS发送电子邮件的最stream行的模块。 我已经使用了好几个月了,而且我非常满意。

如果你担心你的应用程序的未来,那么你应该考虑到Nodemailer不仅仅用于Sendgrid,还有很多其他的竞争者。 所以,如果你对Sendgrid有问题,你可以轻松地切换到另一个电子邮件传送服务,而无需学习不同的API。

所以我build议你使用nodemailer-sendgrid-transport,如果你发现错误,用PR修复它们:P