安装
npm i nodemailer
新建nodemailer.js
const nodemailer = require('nodemailer')
const nodeMail = nodemailer.createTransport({
service: 'qq', //类型qq邮箱
port: 465,
secure: true,
auth: {
user: 'xxxxxx@qq.com', // 发送方的邮箱
pass: 'xxxxxxxxxx' // stmp授权码
}
});
module.exports = nodeMail
获取secure和port
在根目录下, node_modeles/nodemailer/lib/well-known/services.json
获取stmp授权码
在qq邮箱 设置 账户
开启此服务获取stmp授权码
nodejs
const express = require('express')
const nodeMail = require('./nodemailer')
// import nodeMail from './nodemailer'
const app = express()
//配置cors跨域
const cors = require('cors')
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位随机验证码
//发送邮件
const mail = {
from: `"大帅哥"<xxxx@qq.com>`,// 发件人
subject: '验证码',//邮箱主题
to: email,//收件人
// 邮件内容,用html格式编写
html: `
<p>验证码:<strong style="color:orangered;">${code}</strong></p>
`
};
const result = await nodeMail.sendMail(mail, (err, info) => {
if (!err) {
res.json({msg: "验证码发送成功"})
} else {
res.json({msg: "验证码发送失败,请稍后重试"})
}
})
// 将验证码存到数据库中 再定时清除验证码
console.log(req.body);
localStorage.setItem("code",code);
setTimeout(() => {
localStorage.removeItem("code")
},1000*60);
});
app.listen(80,() => {
console.log('success run in http://127.0.0.1');
})