在日常的登录,注册中经常会使用到邮件服务,这里记录一个邮件发送服务。以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: "网络异常,验证码发送错误!" })
})
}