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

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

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

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

代码编写

需要用到库

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

授权码生成

测试发送

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

目录
相关文章
|
9月前
|
网络安全 PHP 数据安全/隐私保护
PHPIMAP简单入门 如何使用IMAP下载邮件
PHP是一种广泛应用的编程语言,被用来创建众多的Web应用程序。而PHPIMAP就是其中之一的扩展,它使得PHP能够访问和操作邮件服务器上的电子邮件。本文将介绍如何使用PHPIMAP下载邮件。
76 0
|
10月前
|
PHP
laravel-发送邮件
laravel-发送邮件
141 0
|
搜索推荐 网络安全 Python
Python发送QQ邮件
本文实现Python发送QQ邮件。
288 0
|
PHP
微信开发之消息模板推送 + php
微信开发之消息模板推送 + php
150 0
小储云邮件通知插件配置教程
设置通知配置,配置完成之后,有订单-工单-提现可以通知站长,提升了平台处理效率!
386 0
小储云邮件通知插件配置教程
|
JavaScript 安全 网络安全
如何使用nodejs自动发送邮件?
之前用Nodejs做了很多服务端模块, 最近抽空复盘一下, 接下来笔者将介绍如何使用Nodejs来自动向用户发送邮件. 笔者将详细介绍自动发送邮箱的实现方案, 以及通过一个实际的案例来带大家掌握使用nodejs自动发送邮件, 最后会介绍一些实际的应用场景, 来加深对该方案的理解, 达到学以致用的目的.
676 0
|
JavaScript 前端开发
laravel5.5 使用sendcloud发送邮件
laravel5.5 使用sendcloud发送邮件
|
机器学习/深度学习 JavaScript 搜索推荐