欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

node.js 基于 STMP 协议和 EWS 协议发送邮件

程序员文章站 2022-06-21 20:23:56
本文主要介绍 node.js 发送基于 stmp 协议和 ms exchange web service(ews) 协议的邮件的方法。文中所有参考代码均以 typescript 编码示例。1 基于 s...

本文主要介绍 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 发送邮件的资料请关注其它相关文章!