【node】nodemailer 实现邮件发送
程序员文章站
2024-03-20 11:20:46
...
nodemailer 邮件发送功能可用于用户注册等业务场景,高效、低成本。
我们这里使用腾讯的邮件服务。登录QQ邮箱,点击设置-帐户,开启SMTP服务并生成制授权码,复制授权码,后面要用。这个授权码要安全保存,不要外泄。
配置文件 config.js
//config.js
export default {
smtp: {
get host() {
return 'smtp.qq.com'
},
get user() {
return 'aaa@qq.com' // 这里输入你申请授权的QQ邮箱
},
get pass() {
return 'xxx' // 这里输入你的授权码
}
}
}
安装 nodemailer
npm i -D nodemailer
// 注册邮件发送
import nodeMailer from 'nodemailer'
import Email from '../dbs/config'
// 发件服务相关配置及发件人邮箱、授权码
let transporter = nodeMailer.createTransport({
host: Email.smtp.host,
port: 587,
secure: false, // 开启安全连接
auth: {
user: Email.smtp.user,
pass: Email.smtp.pass
}
})
// ***,过期时间、收件人邮箱、收件人用户名
let ko = {
code: Email.smtp.code(),
expire: Email.smtp.expire(),
email: ctx.request.body.email,
user: ctx.request.body.username
}
// 邮件内容
let mailOptions = {
from: `"认证邮件"<${Email.smtp.user}>`,
to: ko.email,
subject: '《我就随便写个主题吧》***',
html: `您在《我就随便写个主题吧》中注册,您的邀请码是${ko.code}`
}
// 发送邮件
await transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log('error')
} else {
return console.log('success')
}
})