【Node】邮箱发送验证码 (nodemailer)

邮箱发送验证码 (nodemailer)

nodemailer下载

cnpm install nodemailer

封装 + 导出

注意点

  • 邮箱授权码: 邮箱授权码需要开通,以QQ邮箱为例,其它大同小异↓
    • 打开QQ邮箱 → 设置 → 账户 → 开启POP3/SMTP服务。然后根据提示发送短信之后,即可获取授权码,参考图↓

    在这里插入图片描述


src/utils/sendEmail.js

// 导入nodemailer
import nodemailer from 'nodemailer'

/**
 * 发送邮件
 * @param {type:Email, Default:none} fromEmail 发出邮件的邮箱
 * @param {type:Email, Default:none} toEmail  给谁发送邮件的邮箱
 * @param {type:Email, Default:none} user 发送邮件的邮箱
 * @param {type:String, Default:none} pass 邮箱授权码
 * @param {type:String|NUmber,, Default:none} sendText 发送的信息
 * @param {type:String , Default:'smtp.qq.com'} host   邮箱服务的host,例如QQ是【smtp.qq.com】,网易是【smtp.163.com】,其它邮箱自行查
 * @return {undefined | Error} undefined 表示发送成功 | Error表示出错
 */
export default async function sendEmail(fromEmail, toEmail, user, pass, sendText, host = 'smtp.qq.com') {
    
    
    let transporter = nodemailer.createTransport({
    
    
        /**
         * 邮箱服务的host: 
         * qq: smtp.qq.com 
         * 163: smtp.163.com 
         */
        host: host,
        // 开启安全连接,这个开不开都可以,对安全性有要求的话,最好开启
        secureConnection: true,
        auth: {
    
    
            user: user,// 你发送邮件的邮箱
            pass: pass, // 你发送邮件的邮箱的授权码
        },
        tls: {
    
    
            rejectUnauthorized: false, // 拒绝认证就行了, 不然会报证书问题
        },
    });


    let info = await transporter.sendMail({
    
    
        from: '"来自" <' + fromEmail + '>', //发送邮件的邮箱信息
        to: toEmail, // 发送给谁的邮箱
        subject: "验证码", // 标题
        // text: sendText, //发送文本
        // 发送html
        html: "你的验证码为<b style='color:skybkue;'>" + sendText + "</b>,5分钟内有效,请务透漏给他人!",
        //  // 发送邮箱附件
        //  attachments: [{
    
    
        //     // 文件名
        //     filename: 'server.js',
        //     // 文件路径
        //     path: './server.js'
        // }] 
    })
}

使用

//导入
import sendEmail from './utils/sendEmail.js'

// 使用
const sendEmialRes = await sendEmail('[email protected]', '[email protected]', '[email protected]', 'sqmaswdwd', '我是发送的信息').catch(console.error)

猜你喜欢

转载自blog.csdn.net/qq_43614372/article/details/131009258