怎么利用node实现发送QQ邮箱验证码
这篇文章主要介绍“怎么利用node实现发送QQ邮箱验证码”,在日常操作中,相信很多人在怎么利用node实现发送QQ邮箱验证码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么利用node实现发送QQ邮箱验证码”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
开通QQ邮箱POP3/SMTP服务
登录QQ邮箱网址,进入设置选择账户tab页翻到最低下开启此服务
获取qq邮箱授权码
搭建node接口服务
思路
创建index.js文件
安装connect、body-parser、nodemailer模块
编写引入connect框架
编写引入bodyParser模块
引入nodemailer模块
开始安装插件
使用cmd命令提示或者Git一次执行以下安装命令
开始编写index.js文件程序
引入各个模块
let connect = require('connect'), // 引入connect模块 bodyParser = require('body-parser'), // 引入body-parser解析模块 nodemailer = require('nodemailer'); // 引入nodemailer模块
声明并定于发送邮件函数
async function sendMail(text,receive) {let user = "703669046@qq.com";//自己的邮箱let pass = "sfsdfsdfsggxcew"; //qq邮箱授权码let to = `${receive}@qq.com`; //对方的邮箱let transporter = nodemailer.createTransport({host: "smtp.qq.com",port: 587,secure: false,auth: {user: user, // 用户账号pass: pass, //授权码,通过QQ获取},});let info = await transporter.sendMail({from: `测试node发送邮箱<${user}>验证码`, // sender addressto: `测试验证码<${to}>`, // list of receiverssubject: "测试验证码", // Subject linetext: text, // plain text body});}
编写connect、body-parser解析模块
var app = connect().use(bodyParser.json()) //JSON解析.use(bodyParser.urlencoded({ extended: true }))//use()方法还有一个可选的路径字符串,对传入请求的URL的开始匹配。//use方法来维护一个中间件队列
跨域请求设置
.use(function (req, res, next) {//跨域处理// Website you wish to allow to connectres.setHeader('Access-Control-Allow-Origin', '*'); //允许任何源// Request methods you wish to allowres.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); //允许任何方法// Request headers you wish to allowres.setHeader('Access-Control-Allow-Headers', '*'); //允许任何类型res.writeHead(200, { "Content-Type": "text/plain;charset=utf-8" }); //utf-8转码next(); //next 方法就是一个递归调用})
编写发送qq邮箱验证码接口
.use('/emails', function (req, res, next) {let qqEmail= req.body.email;var obj = {code:Math.ceil(Math.random()*1000)};let text=`验证码:${obj.code}.您正在使用登录功能,验证码提供他人可能导致账号被盗,请勿转发或泄漏`sendMail(text,qqEmail)res.end(JSON.stringify(obj))next();})
设置端口
在var app = connect()后面接上
.listen(3331);
启动node服务
在index.js当前文件下开启cmd命令提示符或者Git命令框执行node index.js
命令
前端模块
我是使用vue-cli+elementui
html代码部分
<template> <div> <el-form :model="ruleForm" status-icon ref="ruleForm" label-width="100px" class="demo-ruleForm" > <el-form-item label="QQ" prop="email"> <el-input type="email" v-model="ruleForm.email" autocomplete="off"></el-input> <el-button @click="handleCode">获取验证码</el-button> </el-form-item> <el-form-item label="验证码" prop="code"> <el-input v-model.number="ruleForm.code"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button> <el-button @click="resetForm('ruleForm')">重置</el-button> </el-form-item> </el-form> </div></template>
效果图
js请求代码部分
import ajax from '../../utli/request'export const getCheckCode = param => ajax.$post('/emails', param || {});
js事件部分
<script>import {getCheckCode} from './api/form'export default { data() { return { ruleForm: { email: "", checkPass: "", code: "" }, }; }, methods: { submitForm(formName) { this.$refs[formName].validate(valid => { if (valid) { alert("submit!"); } else { console.log("error submit!!"); return false; } }); }, resetForm(formName) { this.$refs[formName].resetFields(); }, async handleCode(){ let params= { email:this.ruleForm.email } let res = await getCheckCode(params); if(res.state==200){ console.log(res) } } }};</script>
发送qq验证给用户
成功收到邮箱验证码
到此,关于“怎么利用node实现发送QQ邮箱验证码”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341