低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

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

2014 年 7 月 20 日

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 年 7 月 20 日 23:461964
用户头像

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

关注

评论

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

7 个非常实用的 Shell 拿来就用脚本实例!

JackTian

Linux 编程 Shell 脚本语言 运维工程师

有了这个框架,平台开发谁还手敲代码?

华为云开发者社区

华为云 智慧园区 MainPortal 统一门户 HDC2021

1小时800箱,动力机器人真·搬砖16小时不续航;苹果官宣 WWDC 全球开发者大会召开时间;基于图神经网络的分级相关性匹配

京东科技开发者

人工智能 AI 开发者

让云原生应用的交付变得更简单 | KubeVela v1.0 正式发布

郭旭东

Kubernetes 云原生 OAM KubeVela

区块链BaaS平台的搭建,底层BaaS服务平台的开发

13828808769

行业资讯 产品资讯

这6个浏览器插件,让你的浏览器大为不同。

彭宏豪95

chrome 浏览器 插件 chrome扩展 4月日更

「架构实战营」模块一作业

between

架构实战营

架构实战营模块一作业

sandy

Crash 游戏是公平的吗?

飞亚科技

Adobe国际认证证书,如何为“女性”创造,职业发展机会!

Adobe国际认证

BBK智能合约系统开发|BBK智能合约APP软件开发

开發I852946OIIO

系统开发

Nginx 除了负载均衡,还能干点啥

Java小咖秀

nginx 负载均衡

量化马丁策略系统开发app,量化倍投策略平台搭建

WX13823153201

情指勤一体化指挥调度平台建设,重点人员管理平台

13823153121

区块链商品溯源平台搭建及防伪溯源解决方案

13828808769

商品溯源

MUSO挖矿系统开发

飞亚科技

拍乐云 x 扬帆出海 x LiveCloud:音视频出海专家干货分享

拍乐云Pano

flutter ios android WebRTC RTC

小白都能学会的Java注解与反射机制

陈皮的JavaLib

Java 注解 java反射

Spring Boot + RabbitMQ实现订单过期自动取消功能

Lonely Sufferer

RabbitMQ springboot

智慧平安小区建设解决方案,智慧社区综合管理平台开发

WX13823153201

面试笔记(二)线程池连环炮

U+2647

Thread 四月日更

人生苦短,我用Python之小游戏

Bob

开发者 Python 游戏编程 4月日更 -python

白金熊项目奖金制度玩法介绍

飞亚科技

对于数据,科技小白提出了灵魂三问:从哪儿来?到哪儿去?能干什么?

华为云开发者社区

人工智能 安全 数据 数据采集 网络人工智能

书单|互联网企业面试案头书之运营篇

博文视点Broadview

牛比特小矿工系统开发|牛比特小矿工软件APP开发

开發I852946OIIO

系统开发

Rust从0到1-结构体-定义和实例化

rust struct 结构体

模块一课后作业

王瑞强

架构实战营

【LeetCode】搜索旋转排序数组 IIJava题解

HQ数字卡

算法 LeetCode 4月日更

如何善用“Adobe国际认证”证书,提高平面设计师的声音

Adobe国际认证

Adobe国际认证

平面设计之PS(前序)

空城机

PhotoShop ps 4月日更

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

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