QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

Node.js 邮件发送组件 - Nodemailer 1.0 发布

  • 2014-07-20
  • 本文字数:995 字

    阅读完需:约 3 分钟

Nodemailer 是一个简单易用的 Node.js 邮件发送组件(通过 SMTP、sendmail 或者 Amazon SES 实现邮件发送),且支持 Unicode 编码。近日,Nodemailer 1.0 发布,此版本包括许多新特性,稳定性也得到了提高,第一次不支持向后兼容。该版本对整个代码进行了重构,降低了代码复杂度,使代码更加简单,更加易于维护。该版本还新增了一个简单的插件 API。

Nodemailer 的主要特点包括:

  • 支持 Unicode 编码
  • 支持 HTML 内容和普通文本内容
  • HTML 内容中可以嵌入图片
  • 使用 SSL/STARTTLS 实现安全的邮件发送
  • 支持内置的 transport 方法和其他插件实现的 transport 方法
  • 自定义插件处理消息
  • 支持 XOAUTH2 登录验证

Nodemailer 0.x 系列版本包括许多开发者不需要的功能,为了降低 Nodemailer 的代码复杂度和提高可维护性,Nodemailer 1.0 把这些可选的功能代码移出核心代码库,并以插件的形式提供相应功能,如 nodemailer-markdown 插件,在构建模板时需要使用该插件,它使开发者能够使用标记代替 html 内容或者普通文本。

在 Nodemailer 1.0 中,使用新代码重写了一些模块,并从 emailjs.org 邮件处理组件的代码中,借鉴了许多代码。该版本还规范化了一些 API,如使用 filename 代替 fileName。同时还废除了一些功能,如废除了 generateTextFromHTML 方法。

Nodemailer 1.0 基于 new Node streaming API (Streams2)实现发送邮件,所以性能上有了很大的提高,使开发者能够实现 G 量级的附件发送,且在短时间内能够发送数千万封邮件。

根据新新增的插件 API 要求,所有的插件都必须接收两个参数,第一个是邮件对象,第二个是回调函数,邮件对象包括两个属性:data 和 message。

Nodemailer 1.0 以后的版本将会根据语义化版本控制规范制定,新功能和向后不兼容的变化将会放到主版本中,bug 的修复将会放到补丁版本中。

请开发者注意,如果您正在使用Nodemailer 0.7 或者更低的版本,建议不要升级。如果真有升级需要,请参考0.7 版本升级到1.0 版本的升级指南。另外,Nodemailer 是Node.js 邮件发送模块, Node.js 是一个可用来快速构建网络服务及应用的平台,它对 Google V8 引擎进行了封装。有关 Nodemailer 更多详细内容请查看发行说明,登录GitHub下载 Nodemailer。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-07-20 23:462197
用户头像

发布了 92 篇内容, 共 48.0 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

为了弄懂Flutter的状态管理, 我用10种方法改造了counter app

android 程序员 移动开发

五千字长文,深度解密:那些BAT大厂的Android面试官到底在想些什么

android 程序员 移动开发

从Android开发者的角度看一看IOS和Flutter中的列表实现

android 程序员 移动开发

从月薪8k到年薪60w,闭关3个月靠“刷题,移动端开发技术

android 程序员 移动开发

从简历被拒,到拿下头条面试,我花了一年的时间(经验分享+面试题)

android 程序员 移动开发

为什么经常看到35岁程序员,转行之后工资呈断崖式下跌?

android 程序员 移动开发

携程商旅订单系统架构优化实践

GavinYe

架构 中台 后端 OTA 订单系统

今日头条APK瘦身之路,android组件化开发框架对比

android 程序员 移动开发

从0开始写一个基于Flutter的开源中国客户端(4),android应届毕业生面试题

android 程序员 移动开发

ClickHouse用户资源隔离在 GrowingIO 的实践

GrowingIO技术专栏

Clickhouse 多租户 rbac 用户资源隔离 限流熔断

为什么不能使用 Application Context 显示 Dialog?,安卓kotlin

android 程序员 移动开发

中奖了!中奖了!,android组件化通信

android 程序员 移动开发

毕业总结

Geek_35a345

互联网寒冬即将过去,Jetpack将是燃起来的第一把火,我先收藏为敬

android 程序员 移动开发

从简历被拒,到头条Android面试。二本渣渣如何在359天成功拿下offer

android 程序员 移动开发

为什么不能使用 Application Context 显示 Dialog?(1)

android 程序员 移动开发

互联网大厂“围城”,android界面开发

android 程序员 移动开发

从事这么久的Android 开发工作,知道自己处于什么段位嘛?

android 程序员 移动开发

从另一个角度解读handler原理,android开发书籍pdf下载

android 程序员 移动开发

为了这一次字节跳动Android面试机会,我准备了158天,一个疏忽让我前功尽弃

android 程序员 移动开发

毕业设计

Geek_35a345

为您的应用配置 Play Feature Delivery,flutter视频教程仿京东

android 程序员 移动开发

浮感

feitian

为了KPI,对APK进行极限优化!,2021年Android春招面试经历

android 程序员 移动开发

二本学历,五年抄代码经验,疫情期被裁,真牛皮

android 程序员 移动开发

人工智能的下一站:精细化生活场景的智能时代,靠着这份900多页的PDF面试整理

android 程序员 移动开发

今年40岁了,忽然接到公司裁员通知,接下来的路我该怎么办

android 程序员 移动开发

从 0 到 1,带你解剖 MVP 的神秘之处,并自己动手实现 MVP !

android 程序员 移动开发

【得物技术】主子订单模型

得物技术

互联网 模型 电商 订单系统 订单

产品级Flutter开源项目FunAndroid,Provider MVVM的最佳实践

android 程序员 移动开发

今日头条屏幕适配方案终极版正式发布!,移动应用开发平台

android 程序员 移动开发

Node.js邮件发送组件- Nodemailer 1.0发布_架构/框架_李士窑_InfoQ精选文章