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

nodejs實(shí)現(xiàn)郵箱發(fā)送驗(yàn)證碼功能

 更新時(shí)間:2024年07月17日 08:29:19   作者:前端梭哈攻城獅  
開發(fā)個(gè)人網(wǎng)站時(shí),注冊頁面可以使用郵箱驗(yàn)證,于是記錄一下如何用nodejs/express服務(wù)器實(shí)現(xiàn)郵箱發(fā)送驗(yàn)證碼,不僅可以在郵箱注冊時(shí)使用,還可以拓展用于各種安全驗(yàn)證,本文給大家介紹了使用nodejs實(shí)現(xiàn)郵箱發(fā)送驗(yàn)證碼功能,需要的朋友可以參考下

1、前言

開發(fā)個(gè)人網(wǎng)站時(shí),注冊頁面可以使用郵箱驗(yàn)證,于是記錄一下如何用nodejs/express服務(wù)器實(shí)現(xiàn)郵箱發(fā)送驗(yàn)證碼,不僅可以在郵箱注冊時(shí)使用,還可以拓展用于各種安全驗(yàn)證。

2、依賴包

nodejs服務(wù)器需要 express,另外就是我們發(fā)送郵箱的包 nodemailer  , cors解決跨域用于測試

npm i express nodemailer cors

3、使用qq郵箱獲取授權(quán)碼

1)首先封裝 nodemailer.js 文件,添加基本配置,配置前需要得到郵箱類型的 port 和  secure  還有 郵箱stmp授權(quán)碼。

2)//node_modules/nodemailer/lib/well-known/services.json  可以查看相關(guān)的配置,比如這里是qq郵箱,port為465,secure為true。

3)郵箱---設(shè)置--賬戶--POP3/SMTP服務(wù)---開啟---獲取stmp授權(quán)碼

最終獲取到授權(quán)碼

4、代碼實(shí)現(xiàn)

1)創(chuàng)建nodemailer.js文件

const nodemailer = require('nodemailer')

let nodeMail = nodemailer.createTransport({
  service: "qq", //類型qq郵箱
  port: 465, //上文獲取的port
  secure: true, //上文獲取的secure
  auth: {
    user: "779217162@qq.com", // 發(fā)送方的郵箱,可以選擇你自己的qq郵箱
    pass: "上文獲取的stmp授權(quán)碼", // 上文獲取的stmp授權(quán)碼
  },
});

module.exports = nodeMail

2)創(chuàng)建app.js

//app.js
const express = require("express");
const cors = require("cors");
const nodeMail = require("./nodemailer.js");

const app = express();
app.use(express.static("public"));

app.use(express.json());
app.use(cors());

app.post("/api/email", async (req, res) => {
  const email = req.body.email;
  const code = String(Math.floor(Math.random() * 1000000)).padEnd(6, "0"); //生成6位隨機(jī)驗(yàn)證碼
  //發(fā)送郵件
  const mail = {
    from: `"faker前端開發(fā)"<779217162@qq.com>`, // 發(fā)件人
    subject: "驗(yàn)證碼", //郵箱主題
    to: email, //收件人,這里由post請求傳遞過來
    // 郵件內(nèi)容,用html格式編寫
    html: `
             <p>您好!</p>
             <p>您的驗(yàn)證碼是:<strong style="color:orangered;">$[code]</strong></p>
             <p>如果不是您本人操作,請無視此郵件</p>
         `,
  };
  await nodeMail.sendMail(mail, (err, info) => {
    if (!err) {
      res.json({ msg: "驗(yàn)證碼發(fā)送成功" });
    } else {
      res.json({ msg: "驗(yàn)證碼發(fā)送失敗,請稍后重試" });
    }
  });
});

app.listen(3123, () => {
  console.log("服務(wù)開啟成功 , http:www.localhost:3123");
});

3)創(chuàng)建/public/index.html文件

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>發(fā)送郵件</title>
  </head>
  <body>
    <button onclick="sendMail()">發(fā)送郵件</button>
    <script>
      async function sendMail() {
        console.log("發(fā)送郵件");
        const res = await fetch("/api/email", {
          method: "POST",
          headers: {
            "Content-Type": "application/json",
          },
          body: JSON.stringify({
            email: "991584844@qq.com",
          }),
        });
        const data = await res.json();
        console.log(data);
      }
    </script>
  </body>
</html>

目錄結(jié)構(gòu)為:

5、發(fā)送效果

發(fā)送郵件: 779217162@qq.com ===>  991584844@qq.com

6、源碼地址

github: https://github.com/ArcherNull/Archer/tree/main/nodejs-mailer

以上就是nodejs實(shí)現(xiàn)郵箱發(fā)送驗(yàn)證碼功能的詳細(xì)內(nèi)容,更多關(guān)于nodejs郵箱發(fā)送驗(yàn)證碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • node.js之基礎(chǔ)加密算法模塊crypto詳解

    node.js之基礎(chǔ)加密算法模塊crypto詳解

    這篇文章主要介紹了node.js之基礎(chǔ)加密算法模塊crypto詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • Node.js在圖片模板上生成二維碼圖片并附帶底部文字說明實(shí)現(xiàn)詳解

    Node.js在圖片模板上生成二維碼圖片并附帶底部文字說明實(shí)現(xiàn)詳解

    這篇文章主要介紹了Node.js在圖片模板上生成二維碼圖片并附帶底部文字說明實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Nodejs全??蚣躍trongLoop推薦

    Nodejs全??蚣躍trongLoop推薦

    StrongLoop基本提供了制作一個(gè)移動(dòng)產(chǎn)品所有的框架和工具,從標(biāo)準(zhǔn)的Backend server,Devops,應(yīng)用監(jiān)控,。要想介紹完全StrongLoop的所有產(chǎn)品得寫一個(gè)長篇連載了,這里只簡單的瀏覽一遍。
    2014-11-11
  • nodejs中使用HTTP分塊響應(yīng)和定時(shí)器示例代碼

    nodejs中使用HTTP分塊響應(yīng)和定時(shí)器示例代碼

    本文通過示例將要?jiǎng)?chuàng)建一個(gè)輸出純文本的HTTP服務(wù)器,輸出的純文本每隔一秒會(huì)新增100個(gè)用換行符分隔的時(shí)間戳。實(shí)例代碼非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2017-03-03
  • 基于Express實(shí)現(xiàn)遞歸遍歷文件和CRUD操作

    基于Express實(shí)現(xiàn)遞歸遍歷文件和CRUD操作

    在現(xiàn)代的?Web?應(yīng)用開發(fā)中,文件管理是一個(gè)常見而重要的需求,所以本文就來講講如何利用?Express?框架,在遞歸遍歷文件之后實(shí)現(xiàn)強(qiáng)大的?CRUD?操作,構(gòu)建一個(gè)功能完善的文件管理系統(tǒng),感興趣的可以了解一下
    2023-06-06
  • node.js中的buffer.toString方法使用說明

    node.js中的buffer.toString方法使用說明

    這篇文章主要介紹了node.js中的buffer.toString方法使用說明,本文介紹了buffer.toString的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • nodejs編寫bash腳本的終極方案分享

    nodejs編寫bash腳本的終極方案分享

    你懂JavaScript嗎?你需要寫一個(gè)Shell腳本嗎?那么你應(yīng)該試一下Node.js,它很容易安裝,而且很適合通過寫Shell腳本來學(xué)習(xí)它,下面這篇文章主要給大家介紹了關(guān)于nodejs編寫bash腳本的終極方案,需要的朋友可以參考下
    2021-08-08
  • 使用koa-log4管理nodeJs日志筆記的使用方法

    使用koa-log4管理nodeJs日志筆記的使用方法

    這篇文章主要介紹了使用koa-log4管理nodeJs日志筆記的使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • 基于Express和Multer實(shí)現(xiàn)文件本地服務(wù)器文件上傳功能

    基于Express和Multer實(shí)現(xiàn)文件本地服務(wù)器文件上傳功能

    在現(xiàn)代應(yīng)用程序中,文件上傳功能成為了用戶共享和存儲(chǔ)數(shù)據(jù)的重要途徑,所以本文我們一起來探討文件上傳中間件的重要性,并提供常見的實(shí)現(xiàn)方法和相應(yīng)的代碼吧
    2023-06-06
  • NodeJS模塊Buffer原理及使用方法解析

    NodeJS模塊Buffer原理及使用方法解析

    這篇文章主要介紹了NodeJS模塊Buffer原理及使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論

钟祥市| 伊金霍洛旗| 永修县| 华安县| 三河市| 搜索| 北票市| 衡东县| 常德市| 呈贡县| 雷州市| 濮阳县| 鸡西市| 阜平县| 扎鲁特旗| 乐昌市| 建湖县| 麻阳| 烟台市| 樟树市| 柏乡县| 菏泽市| 通道| 三河市| 岐山县| 泸定县| 定襄县| 兰考县| 怀安县| 隆安县| 同仁县| 阿拉善盟| 闵行区| 苗栗市| 东乡| 正定县| 阿拉善右旗| 万源市| 图木舒克市| 商河县| 祁阳县|