欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 【后端开发实习】用Redis实现消息队列邮件发送

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

2025/9/26 5:46:04 来源:https://blog.csdn.net/weixin_73074012/article/details/140439768  浏览:    关键词:【后端开发实习】用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邮箱收到相关的输入信息了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词