10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

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:462405
用户头像

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

关注

评论

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

程序员的晚餐 | 5 月 30 日 入梅天,来一盆小龙虾

清远

美食

云上基础产品之虚拟私有云

韩超

公有云 VPC 虚拟私有云

除了直接看余额,谁更有钱还能怎么比(二)

石君

去中心 零知识证明

N皇后问题

孙苏勇

算法 DFS 深度优先搜索

用大数据分析了一线城市1000多份岗位招聘需求,告诉你如何科学找工作

程序员柠檬

Python 数据分析

云上基础产品之对象存储

韩超

对象存储 公有云 S3

Go: 使用GODEBUG改善Goroutine的使用

陈思敏捷

debug 协程 Go 语言

带你学够浪:Go语言基础系列 - 8分钟学基础语法

程序员柠檬

程序员 后台开发 Go 语言

JMM的前世今生

fkc_zyk

重排序 volatile happens-before JMM cpu

云上基础产品之负载均衡

韩超

负载均衡 公有云

Prometheus 2.18.0 新特性

耳东@Erdong

Prometheus

架构之路

强哥

极客大学架构师训练营

带你学够浪:Go语言基础系列-环境配置和 Hello world

程序员柠檬

后台开发 Go 语言

你想活出怎样的人生

Janenesome

读书笔记 思考

谈谈控制感(12):选择什么样的工作

史方远

读书笔记 个人成长 随笔杂谈

ARTS Week2

丽子

戒掉手机吧

鼎玉谷

人生 手机 时间 浪费 控制

关于 Windows 10 2020 年 5 月更新

FeiLong

【摘】Git-从零单排 02期

卡尔

git 原理 开发工具 工具链

工作那么久,你还具备学习能力么?

punkboy

学习 程序员

浅说Docker基础知识与核心原理

岿然独存5

Docker 软件 Go 语言

RocketMQ - 如何实现事务消息

Java收录阁

RocketMQ

Python 进阶与核心技术 dict & set

Bonaparte

Python 极客时间

是什么奠定了架构师的职场地位?

刁架构

极客大学架构师训练营

Linux命令-df

一周思进

一款霸榜 GitHub 的开源 Linux 资源监视器!

JackTian

GitHub Linux 开源 bashtop 资源监视器

程序猿邂逅相亲妹,默默无语两行泪

码农神说

程序员 相亲

直面一个复杂世界

史方远

读书笔记 个人成长 随笔杂谈

遇事不决,请先 「搜索」

小匚

个人成长 职场 随笔杂谈

云上基础产品之内容分发网络

韩超

CDN 公有云 内容分发网络

ARTS|Week 01 (2020第22周)

MiracleWong

算法 写作 ARTS 打卡计划

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