Node.js 搭建邮件发送服务

在日常的登录,注册中经常会使用到邮件服务,这里记录一个邮件发送服务。以163为例

第一步:下载依赖

npm install nodemailer --save

第二步:去163网站获取邮件授权码。

第三步:配置configuration文件。

module.exports = {
    Email: {
        host:'',//邮箱服务的主机,如smtp.qq.com
        port:'',//对应的端口号
        service: '163', //邮箱 163
        secureConnection: true, //是否使用了ssl证书验证
        user: '账户@163.com', //验证邮箱
        pass: '授权码',        //授权码
        from: '账户@163.com', //发送者的邮箱 
    },
}

第四步:配置服务

//邮件发送路由
router.post('/SendEmail', controllers.SendEmail);


const nodemailer = require('nodemailer')
const config = require('../config')
/**
 * 发送邮箱验证码!
 * @param {*} email //接收者邮箱号
 * @param {*} auth_code //验证码
 */
async function SendEmail(email, auth_code) {
    return new Promise((resolv, reject) => {
        const smtpTransport = nodemailer.createTransport({
            host: config.Email.host,
            port: config.Email.port,
            //在163邮箱下,可以不使用服务器地址跟端口。
            //将host port 参数注释掉。
            //反之,将service注释
            service: config.Email.service,           
            secureConnection: config.Email.secureConnection,
            auth: {
                user: config.Email.user,
                pass: config.Email.pass
            }
        });
        smtpTransport.sendMail({
            from: config.Email.from,
            to: email,
            subject: '邮件验证码!',
            //注:text参数可以直接发送中文英文。
            //html:可以写HTML代码发送邮件。
            text: "验证码:" + auth_code
            //html: "<p>验证码,验证码有效时间2分钟</p><p style='font-weight: bold;'>" + auth_code + "</p>"
        }, function (err, res) {
            console.log(err)
            console.log(res)
            if (res) {
                resolv({ code: "200", msg: "验证码发送成功,请查收" })
            }
            if (err) {
                reject({ code: "401", msg: "网络异常,验证码发送错误!" })
            }
        })
    }).catch(res => {
        console.log(res)
        reject({ code: "401", msg: "网络异常,验证码发送错误!" })
    })
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值