node.js 基于 STMP 协议和 EWS 协议发送邮件
本文主要介绍 node.js 发送基于 stmp
协议和 ms exchange web service(ews)
协议的邮件的方法。文中所有参考代码均以 typescript 编码示例。
1 基于 stmp 协议的 node.js 发送邮件方法
提到使用 node.js 发送邮件,基本都会提到大名鼎鼎的 nodemailer
模块,它是当前使用 stmp 方式发送邮件的首选。
基于 nodemailer
发送 stmp 协议邮件的文章网上已非常多,官方文档介绍也比较详细,在此仅列举示例代码以供对比参考:
封装一个 sendmail
邮件发送方法:
使用 sendmail 方法发送邮件:
2 基于 ms exchange 邮件服务器的 node.js 发送邮件方法
对于使用微软的 microsoft exchange server 搭建的邮件服务,nodemailer 就无能为力了。exchange web service(ews)提供了访问 exchange 资源的接口,在微软官方文档中对其有详细的接口定义文档。针对 exchange 邮件服务的流行第三方库主要有 node-ews 和 ews-javascript-api。
2.1 使用 node-ews 发送 ms exchange 邮件
下面以 node-ews 模块为例,介绍使用 exchange 邮件服务发送邮件的方法。
2.1.1 封装一个基于 node-ews 发送邮件的方法
封装一个 sendmailbynodeews 方法:
使用 sendmailbynodeews 方法发送邮件:
2.1.2 基于 ntlmauth 的认证配置方式
直接配置 pass 密码可能会导致明文密码泄露,我们可以将 pass 字段留空,配置 nt_password 和 lm_password 字段,使用 ntlmauth 认证模式。此二字段基于 pass 明文生成,其 nodejs 生成方式可借助 httpntlm 模块完成,具体参考如下:
2.2 使用 ews-javascript-api 发送 ms exchange 邮件
基于 ews-javascript-api 发送邮件的方式,在其官方 wiki 有相关示例,但本人在测试过程中未能成功,具体为无法取得服务器认证,也未能查证具体原因,故以下代码仅作参考:
3 扩展参考
github.com/cumberlandg…
github.com/gautamsi/ew…
以上就是node.js 基于 stmp 协议和 ews 协议发送邮件的详细内容,更多关于node.js 发送邮件的资料请关注其它相关文章!