【后端开发实习】用Redis实现消息队列邮件发送

简介

用Resi本身封装的方法相比于调redis-smq库,实现方式就要简单朴素很多:

  • 调用redis本身的List数据结构的Lpush实现消息的进队。
  • 用Redis的List数据结构的brpop方法实现消息的出队。
  • 将出队消息通过邮件方法发送给指定的用户。
    生动形象理解就是用redis作为一根管子将发送端和接收端连接在一起,然后通过这根管子(先进先出)进行数据传输。
email.js
const stmpid = "通过QQ邮箱官网获取的密钥"
var nodemailer = require('nodemailer');
//将获取到的消息通过邮箱发送
//开启一个 SMTP 连接池
var transport = nodemailer.createTransport({
    host : 'smtp.qq.com', //QQ邮箱的 smtp 服务器地址
    secure : true, //使用 SSL 协议
    secureConnection : false, //是否使用对 https 协议的安全连接
    port : 465, //QQ邮件服务所占用的端口
    auth : {
        user : '你的@qq.com', //开启 smtp 服务的发件人邮箱,用于发送邮件给其他人
        pass : stmpid //SMTP 服务授权码
    }
})
exports.transemail = function(message){
	transport.sendMail({
		from : '你的@qq.com', //发件人
		to : '你想发送的对象@qq.com', //收件人
		subject : 'mongodb数据更新', //标题
		text: message
	},(err,res)=>{
		if(err){//执行错误
			  console.log(err) 
		} else {
			console.log(res) //执行成功, 会返回响应体内容。
		}     
		 transport.close() // 如果没用,则关闭连接池
	 })
}
consumer.js
const redis = require('promise-redis-client')

exports.createClient = function() {
    return new Promise((resolve, reject) => {
        let client = redis.createClient()
        client.on('error', err => {
            console.log('redis 连接出错')
            reject(err)
        })
        client.on('ready', () => {
            console.log('redis ready')
            resolve(client)
        })
    })
}

由于是简单的邮件发送模拟,所以数据产生的模拟直接通过在命令行中执行lpush就可以了。
在这里插入图片描述
然后启动consumer服务以后就可以在你指定的QQ邮箱收到相关的输入信息了。

相关推荐

  1. 如何Redis实现消息队列

    2024-07-16 12:52:02       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 12:52:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 12:52:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 12:52:02       58 阅读
  4. Python语言-面向对象

    2024-07-16 12:52:02       69 阅读

热门阅读

  1. 详细介绍Flask-Restful

    2024-07-16 12:52:02       18 阅读
  2. python 基础语法整理

    2024-07-16 12:52:02       28 阅读
  3. 【所谓生活】马太效应

    2024-07-16 12:52:02       22 阅读
  4. WPF学习(7) --MVVM模式

    2024-07-16 12:52:02       27 阅读
  5. HDMI Retimer

    2024-07-16 12:52:02       18 阅读
  6. Web开发:<p>标签作用

    2024-07-16 12:52:02       22 阅读