写点什么

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

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

关注

评论

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

8节深度学习干货课程,帮你轻松点亮AI项目开发技能

OpenI启智社区

人工智能 深度学习

【重构前端知识体系之HTML】HTML5给网页音频带来的变化

归子莫

html 前端 1月月更 audio

☕【Java深层系列】「并发编程系列」让我们一起探索一下CyclicBarrier的技术原理和源码分析

码界西柚

并发编程 AQS CyclicBarrier Java 线程 1月日更

企业可以定级吗?可以自己确定等保等级吗?

行云管家

网络安全 等保 等级保护 等保2.0

面试官:知道 Flutter 生命周期?下周来入职!

百瓶技术

前端 生命周期 客户端 Flutter 小菜

字节跳动数据湖技术选型的思考与落地实践

字节跳动数据平台

数据湖 数据流 Apache Hudi

SparkSQL高并发:读取存储数据库

华为云开发者联盟

数据库 高并发 Sparksql 存储 读取

Hoo虎符研究院2022年0124期区块简报

区块链前沿News

Hoo虎符 Hoo 虎符交易所 区块链资讯

国内公有云首个支持保留消息功能!百度智能云天工物联网核心套件技术再升级

百度大脑

人工智能

科技,让春节团圆再无距离

Anthony

教程直播第7期|如何对 OceanBase 进行 SQL 诊断和调优

OceanBase 数据库

数据库 直播 课程 OceanBase 开源 OceanBase 社区版

2022年Flutter真的会一统大前端吗?

坚果

Flutter 小菜 1月月更

SAP ABAP 业务开关和 SAP 电商云的 Feature Level

汪子熙

angular abap 1月月更 增强包 增强技术

无服务器计算Serverless能否引领云计算下一个十年?

用友BIP

云计算 容器 无服务器计算

恒源云(GPUSHARE)_Teacher Forcing训练小技巧来啦~

恒源云

深度学习 语音识别

腾“云”架“雾”,3DCAT带你进入元宇宙

3DCAT实时渲染

云渲染 元宇宙

【安全漏洞】Struts2漏洞集合总结

H

网络安全 安全漏洞

Python 判断图片和文件真实类型(qbit)

qbit

后缀

M1 用不了 Vagrant 只能用这个代替了“ Multipass” 一个 如Docker般的虚拟机

edd

Netty核心概念之ChannelHandler&Pipeline&ChannelHandlerContext

CRMEB

Python监督学习之分类算法的概述

王小王-123

Python 人工智能 机器学习 分类算法

起个变量名,好的代码应该是这样的

蜜糖的代码注释

Java 互联网 开发 后端技术

从重大漏洞应急看云原生架构下的安全建设与安全运营(上)

腾讯安全云鼎实验室

云原生 安全漏洞 安全服务

服务网格的落地探索和实践

ZEGO即构

微服务 istio 服务网格 音视频开发

首批+唯一!阿里云实时计算 Flink 版通过信通院大数据产品稳定性测试

Apache Flink

大数据 flink 阿里云 实时计算

【监控体系】全面系统的Zabbix讲解 | 含源码&监控类型整理

云智慧AIOps社区

运维 监控 zabbix 智能运维 监控工具

《火绒安全2021终端安全情报年鉴》发布 拦截弹窗广告45亿次

火绒安全

网络安全 终端工具 终端安全 勒索攻击 弹窗

迭代发布后,为什么还需要开迭代回顾会议?

LigaAI

团队管理 敏捷开发

深入浅出Apache Pulsar(4)Pulsar Functions

云智慧AIOps社区

Apache kafka 云原生 pulsar 消息中间件

数智融合加速驱动企业商业创新

用友BIP

大数据 数据中台

markdown-it 插件如何写(三)

冴羽

JavaScript 前端 vuepress markdown-it markdown-it插件

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