最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何利用node實現(xiàn)發(fā)送QQ郵箱驗證碼

 更新時間:2022年04月14日 14:15:36   作者:菜鳥入坑  
我們在開發(fā)網(wǎng)站時,發(fā)送驗證碼的功能是必定會遇到的,下面這篇文章主要給大家介紹了關(guān)于如何利用node實現(xiàn)發(fā)送QQ郵箱驗證碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下

開通QQ郵箱POP3/SMTP服務

登錄QQ郵箱網(wǎng)址,進入設(shè)置選擇賬戶tab頁翻到最低下開啟此服務

獲取qq郵箱授權(quán)碼

搭建node接口服務

思路

  • 創(chuàng)建index.js文件
  • 安裝connect、body-parser、nodemailer模塊
  • 編寫引入connect框架
  • 編寫引入bodyParser模塊
  • 引入nodemailer模塊

開始安裝插件

使用cmd命令提示或者Git一次執(zhí)行以下安裝命令

開始編寫index.js文件程序

引入各個模塊

let connect = require('connect'),         // 引入connect模塊
    bodyParser = require('body-parser'),  // 引入body-parser解析模塊
    nodemailer = require('nodemailer');   // 引入nodemailer模塊

聲明并定于發(fā)送郵件函數(shù)

async function sendMail(text,receive) {
	let user = "703669046@qq.com";//自己的郵箱
	let pass = "sfsdfsdfsggxcew"; //qq郵箱授權(quán)碼
	let to = `${receive}@qq.com`; //對方的郵箱
	let transporter = nodemailer.createTransport({
		host: "smtp.qq.com",
		port: 587,
		secure: false,
		auth: {
			user: user, // 用戶賬號
			pass: pass, //授權(quán)碼,通過QQ獲取
		},
	});
	let info = await transporter.sendMail({
		from: `測試node發(fā)送郵箱<${user}>驗證碼`, // sender address
		to: `測試驗證碼<${to}>`, // list of receivers
		subject: "測試驗證碼", // Subject line
		text: text, // plain text body
	});
}

編寫connect、body-parser解析模塊

var app = connect()
	.use(bodyParser.json())   //JSON解析
	.use(bodyParser.urlencoded({ extended: true }))
	//use()方法還有一個可選的路徑字符串,對傳入請求的URL的開始匹配。
	//use方法來維護一個中間件隊列

跨域請求設(shè)置

	.use(function (req, res, next) {
		//跨域處理
		// Website you wish to allow to connect
		res.setHeader('Access-Control-Allow-Origin', '*');  //允許任何源
		// Request methods you wish to allow
		res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');  //允許任何方法
		// Request headers you wish to allow
		res.setHeader('Access-Control-Allow-Headers', '*');   //允許任何類型
		res.writeHead(200, { "Content-Type": "text/plain;charset=utf-8" });    //utf-8轉(zhuǎn)碼
		next();  //next 方法就是一個遞歸調(diào)用
	})

編寫發(fā)送qq郵箱驗證碼接口

	.use('/emails', function (req, res, next) {
		let qqEmail= req.body.email;
		var obj = {
			code:Math.ceil(Math.random()*1000)
		};
		let text=`驗證碼:${obj.code}.您正在使用登錄功能,驗證碼提供他人可能導致賬號被盜,請勿轉(zhuǎn)發(fā)或泄漏`
		sendMail(text,qqEmail)
		res.end(JSON.stringify(obj))
		next();
	})

設(shè)置端口

在var app = connect()后面接上

.listen(3331);

啟動node服務

在index.js當前文件下開啟cmd命令提示符或者Git命令框執(zhí)行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>

發(fā)送qq驗證給用戶

成功收到郵箱驗證碼

總結(jié)

到此這篇關(guān)于如何利用node實現(xiàn)發(fā)送QQ郵箱驗證碼的文章就介紹到這了,更多相關(guān)node發(fā)送QQ郵箱驗證碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • node.js+Ajax實現(xiàn)獲取HTTP服務器返回數(shù)據(jù)

    node.js+Ajax實現(xiàn)獲取HTTP服務器返回數(shù)據(jù)

    這篇文章主要介紹了node.js+Ajax實現(xiàn)獲取HTTP服務器返回數(shù)據(jù),講解的十分詳細,也給出了很多的實例,是篇非常不錯的文章,這里推薦給大家。
    2014-11-11
  • 利用nodejs讀取圖片并將二進制數(shù)據(jù)轉(zhuǎn)換成base64格式

    利用nodejs讀取圖片并將二進制數(shù)據(jù)轉(zhuǎn)換成base64格式

    這篇文章主要介紹了利用nodejs讀取圖片并將二進制數(shù)據(jù)轉(zhuǎn)換成base64格式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Nodejs封裝類似express框架的路由實例詳解

    Nodejs封裝類似express框架的路由實例詳解

    在本篇文章里小編給大家整理的是關(guān)于Nodejs封裝類似express框架的路由實例內(nèi)容,有需要的朋友們學習下。
    2020-01-01
  • Node.js添加API限流與日志優(yōu)化詳解

    Node.js添加API限流與日志優(yōu)化詳解

    這篇文章主要介紹了Node.js添加API限流與日志優(yōu)化的相關(guān)資料,以增強API的穩(wěn)定性和可維護性,API限流功能可以防止惡意請求和DDoS攻擊,優(yōu)化后的日志記錄系統(tǒng)則可以幫助我們更好地跟蹤和調(diào)試應用,快速定位問題,需要的朋友可以參考下
    2024-11-11
  • npm國內(nèi)鏡像 安裝失敗的幾種解決方案

    npm國內(nèi)鏡像 安裝失敗的幾種解決方案

    這篇文章主要給大家總結(jié)了npm國內(nèi)鏡像npm安裝失敗的幾種解決方案,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下來一起看看吧。
    2017-06-06
  • Node.js 服務器端應用開發(fā)框架 -- Hapi.js

    Node.js 服務器端應用開發(fā)框架 -- Hapi.js

    Hapi.js 是一個用來構(gòu)建基于 Node.js 的應用和服務的富框架,使得開發(fā)者把重點放在便攜可重用的應用邏輯而不是構(gòu)建架構(gòu)。內(nèi)建輸入驗證、緩存、認證和其他 Web 應用開發(fā)常用的功能。
    2014-07-07
  • 淺談Node.js ORM框架Sequlize之表間關(guān)系

    淺談Node.js ORM框架Sequlize之表間關(guān)系

    下面小編就為大家?guī)硪黄獪\談Node.js ORM框架Sequlize之表間關(guān)系。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • NodeJS實現(xiàn)一個聊天室功能

    NodeJS實現(xiàn)一個聊天室功能

    這篇文章主要介紹了NodeJS實現(xiàn)一個聊天室功能,本文實例截圖相結(jié)合給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • vscode調(diào)試node.js的實現(xiàn)方法

    vscode調(diào)試node.js的實現(xiàn)方法

    這篇文章主要介紹了vscode調(diào)試node.js的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • NPM命令運行報錯:npm?v10.2.4?is?known?not?to?run?on?Node.js?v14.21.1解決辦法

    NPM命令運行報錯:npm?v10.2.4?is?known?not?to?run?on?Node.js

    這篇文章主要給大家介紹了關(guān)于NPM命令運行報錯:npm?v10.2.4?is?known?not?to?run?on?Node.js?v14.21.1的解決辦法,文中將解決辦法介紹的非常詳細,需要的朋友可以參考下
    2024-01-01

最新評論

乌拉特中旗| 文化| 本溪市| 嘉鱼县| 搜索| 平乐县| 府谷县| 青海省| 松潘县| 卓资县| 英吉沙县| 锡林浩特市| 嘉定区| 辽阳市| 涟源市| 清苑县| 清原| 虹口区| 枝江市| 武宁县| 泽州县| 建宁县| 景泰县| 会东县| 巴塘县| 汶川县| 罗江县| 道孚县| 平阴县| 绥江县| 弥勒县| 柘荣县| 东方市| 甘孜| 固安县| 大同县| 海伦市| 定日县| 宣汉县| 建阳市| 肇源县|