Nodejs 第二十八章(邮件服务)

邮件服务在我们工作中邮件服务充当着一个重要的角色

    1. 任务分配与跟踪:邮件服务可以用于分配任务、指派工作和跟踪项目进展。通过邮件,可以发送任务清单、工作说明和进度更新,确保团队成员了解其责任和任务要求,并监控工作的完成情况。
    1. 错误报告和故障排除:当程序出现错误或异常时,程序员可以通过邮件将错误报告发送给团队成员或相关方。这样可以帮助团队了解问题的性质、复现步骤和相关环境,从而更好地进行故障排除和修复。邮件中可以提供详细的错误消息、堆栈跟踪和其他相关信息,以便其他团队成员能够更好地理解问题并提供解决方案。
    1. 自动化构建和持续集成:在持续集成和自动化构建过程中,邮件服务可以用于通知团队成员构建状态、单元测试结果和代码覆盖率等信息。如果构建失败或出现警告,系统可以自动发送邮件通知相关人员,以便及时采取相应措施。

代码编写

需要用到库

npm install js-yaml
npm install nodemailer

我们邮件的账号(密码| 授权码)不可能明文写到代码里面一般存放在yaml文件或者环境变量里面

js-yaml 解析yaml文件

pass: 授权码 | 密码
user: xxxxx@qq.com 邮箱账号
import nodemailder from 'nodemailer'
import yaml from 'js-yaml'
import fs from 'node:fs'
import http from 'node:http'
import url from 'node:url'
const mailConfig = yaml.load(fs.readFileSync('./mail.yaml', 'utf8'))
const transPort = nodemailder.createTransport({service: "qq",port: 587,host: 'smtp.qq.com',secure: true,auth: {pass: mailConfig.pass,user: mailConfig.user}
})http.createServer((req, res) => {const { pathname } = url.parse(req.url)if (req.method === 'POST' && pathname == '/send/mail') {let mailInfo = ''req.on('data', (chunk) => {mailInfo += chunk.toString()})req.on('end', () => {const body = JSON.parse(mailInfo)transPort.sendMail({to: body.to,from: mailConfig.user,subject: body.subject,text: body.text})res.end('ok')})}
}).listen(3000)

nodemailder.createTransport 创建邮件服务这里用qq举例,

QQ邮件服务文档

文档地址(点击我)

POP3/SMTP 设置方法

用户名/帐户: 你的QQ邮箱完整的地址

密码: 生成的授权码

电子邮件地址: 你的QQ邮箱的完整邮件地址

接收邮件服务器: pop.qq.com,使用SSL,端口号995

发送邮件服务器: smtp.qq.com,使用SSL,端口号465或587

授权码生成

image.png

image.png

测试发送

POST http://localhost:3000/send/mail HTTP/1.1
Content-Type: application/json{"to":"xxxxx@qq.com","subject":"标题","text":"我想你了,你还好吗Rong"
}

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/287150.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Labview Vision 机器视觉使用,从下载程序安装应用,到实战找硬币并输出值

1.前言 大家好,今天我要和机器人一起配合来打算 做机器视觉 用Labview 和 Vision 联动实现机器的视觉 2.下载软件-软件的安装 我们除了基础款的labview软件 还要安装视觉四件套 1.Labview 编程平台(我是 2023 q3) 2. NI - IMAQdx (驱动软…

Win10 / Win11 的 Arc 浏览器Beta版测试

Arc 浏览器Beta版测试 Arc 采用了和主流浏览器不同的用户界面,采用名为 Arc Library 的左侧边栏,可以访问 Spaces、Today 标签、Pinned 标签、收藏夹、画架和笔记等生产力工具。

​C语言顺序查找算法以及代码​

通过前面对静态查找表的介绍,静态查找表即为只做查找操作的查找表。静态查找表既可以使用顺序表表示,也可以使用链表结构表示。虽然一个是数组、一个链表,但两者在做查找操作时,基本上大同小异。 本节以静态查找表的顺序存储结构为…

Windows系统安装MySQL并用Navicat连接的操作流程(详细)

下面我以Win10,64 位操作系统, 基于 x64 的处理器为例,演示MySQL的安装及Navicat连接MySQL的操作流程,非常详细。 一、安装MySQL 第一步,双击安装包,打开安装页面,点击Next 注意这个安装包是5.5.56-win6…

dubbo--03--- dubbo 支持的9种协议

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Dubbo框架特性Dubbo 和 Spring Cloud区别 dubbo 支持的9种协议协议类型1、dubbo 协议 (默认)特性配置常见问题 2、rmi 协议3、hessian 协议4、http 协议特性 5、web…

电脑的内存条是什么?内存条的作用有哪些?

计算机已经是现代生活人们必不可少的一部分,计算机的性能决定因素之一就是内存条,内存条的作用有哪些?这篇文章让你了解内存条的主要作用。 内存条是什么 内存条是什么,它是计算机内部的一种重要硬件组件,用于临时存…

Linux 进程信号

文章目录 信号的概览信号的产生信号的处理信号集操作信号的捕捉补充与说明 信号的概览 信号由软件或硬件产生发送给进程,进程对其做相应处理。信号是进程之间事件异步通知的一种方式,属于软中断。 Linux下的全部信号由指令kill -l查询 Linux 下指令的…

el-table自定义表格数据

如上所示: 表格内的数据是:当前班级所在名次段的人数 / 当前班级1至n名的累计人数 5/12 也就是 5/75 需要变更为: 截至到当前名次段总人数(上次考试) / 截至到当前名次段总人数(本次考试&#xff09…

C++共享和保护——(5)编译预处理命令

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 耕耘者的汗水是哺育种子成长的乳汁&am…

【数据结构】栈的使用|模拟实现|应用|栈与虚拟机栈和栈帧的区别

目录 一、栈(Stack) 1.1 概念 1.2 栈的使用 1.3 栈的模拟实现 1.4 栈的应用场景 1. 改变元素的序列 2. 将递归转化为循环 3. 括号匹配 4. 逆波兰表达式求值 5. 出栈入栈次序匹配 6. 最小栈 1.5 概念区分 一、栈(Stack) 1.1 概念 栈:一种特殊的线性表&…

SpringBoot之分层解耦以及 IOCDI的详细解析

### 3.2 分层解耦 刚才我们学习过程序分层思想了,接下来呢,我们来学习下程序的解耦思想。 解耦:解除耦合。 #### 3.2.1 耦合问题 首先需要了解软件开发涉及到的两个概念:内聚和耦合。 - 内聚:软件中各个功能模块内…

3d抄数逆向建模服务造纸机械叶轮三维扫描曲面建模-CASAIM

在造纸机械中,叶轮是重要的组成部分,造纸机械叶轮在使用过程中会承受较大外力的摩擦,长期使用容易导致外观变形破损,从而降低叶轮的工作效率和精度。因此,定期生产制作同类型的造纸机械叶轮产品,以用于替换…