• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > node.js 基于 STMP 协议和 EWS 协议发送邮件

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

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了node.js,基于 STMP 协议, EWS 协议,发送邮件等相关知识,希望对您有所帮助

这篇文章主要介绍了node.js 基于 STMP 协议和 EWS 协议发送邮件的示例,帮助大家更好的理解和使用node.js,感兴趣的朋友可以了解下

本文主要介绍 node.js 发送基于 STMP 协议和 MS Exchange Web Service(EWS) 协议的邮件的方法。文中所有参考代码均以 TypeScript 编码示例。

1、基于 STMP 协议的 node.js 发送邮件方法

提到使用 node.js 发送邮件,基本都会提到大名鼎鼎的 Nodemailer 模块,它是当前使用 STMP 方式发送邮件的首选。

基于 NodeMailer 发送 STMP 协议邮件的文章网上已非常多,官方文档介绍也比较详细,在此仅列举示例代码以供对比参考:

封装一个 sendMail 邮件发送方法:

/** * 使用 Nodemailer 发送 STMP 邮件 * @param {Object} opts 邮件发送配置 * @param {Object} smtpCfg smtp 服务器配置 */async function sendMail(opts, smtpCfg) {    const resultInfo = { code: 0, msg: '', result: null };    if (!smtpCfg) {        resultInfo.msg = '未配置邮件发送信息';        resultInfo.code = - 1009;        return resultInfo;    }    // 创建一个邮件对象    const mailOpts = Object.assign(        {            // 发件人            from: `Notify <${smtpCfg.auth.user}>`,            // 主题            subject: 'Notify',            // text: opts.content,            // html: opts.content,            // 附件内容            // /*attachments: [{            // filename: 'data1.json',            // path: path.resolve(__dirname, 'data1.json')            // }, {            // filename: 'pic01.jpg',            // path: path.resolve(__dirname, 'pic01.jpg')            // }, {            // filename: 'test.txt',            // path: path.resolve(__dirname, 'test.txt')            // }],*/        },        opts    );    if (!mailOpts.to) mailOpts.to = [];    if (!Array.isArray(mailOpts.to)) mailOpts.to = String(mailOpts.to).split(',');    mailOpts.to = mailOpts.to.map(m => String(m).trim()).filter(m => m.includes('@'));    if (!mailOpts.to.length) {        resultInfo.msg = '未配置邮件接收者';        resultInfo.code = - 1010;        return resultInfo;    }    const mailToList = mailOpts.to;    const transporter = nodemailer.createTransport(smtpCfg);    // to 列表分开发送    for (const to of mailToList) {        mailOpts.to = to.trim();        try {            const info = await transporter.sendMail(mailOpts);            console.log('mail sent to:', mailOpts.to, ' response:', info.response);            resultInfo.msg = info.response;        } catch (error) {            console.log(error);            resultInfo.code = -1001;            resultInfo.msg = error;        }    }    return resultInfo;}

使用 sendMail 方法发送邮件:

const opts = {    subject: 'subject for test',    /** HTML 格式邮件正文内容 */    html: `email content for test: <a href="https://www.zztuku.com" rel="external nofollow" rel="external nofollow" >https://www.zztuku.com</a>`,    /** TEXT 文本格式邮件正文内容 */    text: '',    to: 'xxx@lzw.me',    // 附件列表    // attachments: [],};const smtpConfig = {    host: 'smtp.qq.com', //QQ: smtp.qq.com; 网易: smtp.163.com    port: 465, //端口号。QQ邮箱 465,网易邮箱 25    secure: true,    auth: {        user: 'xxx@qq.com', //邮箱账号        pass: '', //邮箱的授权码    },};sendMail(opts, smtpConfig).then(result => console.log(result));

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 方法:

import EWS from 'node-ews';export interface IEwsSendOptions {    auth: {        user: string;        pass?: string;        /** 密码加密后的秘钥(NTLMAuth.nt_passwor
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • node.js 基于 STMP 协议和 EWS 协议发送邮件
  • Node.js中async的用法是什么
  • Node.js怎么读写json文件?方法介绍
  • Node.js设置NODE_ENV时发生错误怎么解决?
  • 一招教你使用Node.js中iis部署运行node(附代码)
  • 深入了解Node.js 中的多线程和多进程
  • 聊聊Node.js中的事件驱动程序和EventEmitter类
  • 浅析node Express框架中的 res.send() 和 res.end()
  • 什么是事件循环?详解Node.js中的事件循环
  • Node.js深入学习之浅析require函数中怎么添加钩子

相关文章

  • DedeCMS使用sql语句获取文章链接地址
  • Dropzone.js实现文件拖拽上传
  • 社交网站内容对SEO的价值
  • 实例详解Laravel使用中间件记录用户请求日志
  • PHP中怎么解决serialize函数中文乱码的问题
  • AI打造漂亮文字效果
  • 宝塔linux管理助手安装完后显示IP为内网IP怎么办
  • phpMyadmin怎么使用空密码登入
  • 解决WordPress评论加强:防止游客冒充站长回复别人的办法
  • 网站排名内部优化方法

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Vue中Computed和Watch的用法及区别
    • Photoshop设计血淋淋的文字效果图
    • 你值得了解的一种CSS获取图片主题色的小技巧(分享)
    • 在微信小程序中用户登录和登录状态维护
    • PHP远程采集正则图片案例
    • 给dedecms软件列表页添加下载次数的方法
    • 你知道Laravel Collection的实际使用场景什么吗?
    • JavaScript中解析parseInt()的怪异行为
    • Photoshop使用3D工具制作超酷的金属立体字
    • PhotoShop滤镜制作简单的冰晶字效果教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有