nodeMailer發送郵箱驗證碼

nodeMailer發送郵箱驗證碼

1、封裝nodemailer對象

const nodemailer = require("nodemailer");
// 封裝nodemailer對象
let nodeEmail = {
    config: {
        host: "smtp.qq.com",
        port: 587,
        secure: false, // true for 465, false for other ports
        auth: {
            user: "[email protected]", // generated ethereal user
            pass: "vctsdrzqfdhcjgif" // generated ethereal password
        }
    },
    get transporter() {
        return nodemailer.createTransport(this.config)
    },
    get verifyCode() {
        return Math.random().toString().substring(2, 6);
    }
}

2、寫一個路由接口來使用它

let express = require('express');
let router = express.Router();
// 寫一個驗證碼接口
router.get('/verify', (req, res, next) => {
    let email = req.query.email;
    let verifyCode = nodeEmail.verifyCode;
    //驗證碼和郵箱存入session
    req.session.email = email;
    req.session.verifyCode = verifyCode;

    let options = {
        from: "bidding-system<[email protected]>", // sender address
        to: email, // list of receivers
        subject: "郵箱驗證碼", // Subject line
        text: `驗證碼:${verifyCode}`, // plain text body
    };
    nodeEmail.transporter.sendMail(options).then(result => {
        res.send({
            msg: "驗證碼發送成功",
            status: 0,
            verifyCode: verifyCode
        })
    }).catch(err => {
        console.log(`驗證碼發送失敗${err}`);
        res.send({
            msg: "驗證碼發送失敗",
            status: -1
        })
    });
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章