安装依赖
npm i -S nodemailer
编写配置文件
获取邮箱配置可参考下文FAQ
// ~/src/config/email
export default {
// SMTP服务器域名, 网易邮箱填 smtp.163.com; 其他邮箱按实际情况填写
host: 'smtp.163.com',
// 连接端口号, 使用ssl安全连接为465; 非ssl为25
port: 465,
// 是否使用ssl
secure: true,
// 邮箱账号
user: '******@163.com',
// 授权密码
pass: '********'
}
封装类
import nodeMail, { SendMailOptions } from 'nodemailer'
import mailConfig from '~/src/config/email'
const { host, port, user, pass } = mailConfig
const transporter = nodeMail.createTransport({
host,
port,
// 使用ssl
secure: true,
auth: {
user: user,
pass: pass,
},
tls: { rejectUnauthorized: false },
})
class Transporter {
/**
* 发送邮件
* @param options
*/
static async sendEmail(options: SendMailOptions) {
return transporter.sendMail({
// 邮件发送方
from: mailConfig.from,
...options,
})
}
}
export default Transporter
使用
import Transporter from '~/src/library/email'
const sentMessageInfo = await Transporter.sendEmail({
// 邮件接收方
to: ['********@qq.com'],
// 邮件标题
subject: '河图验证码',
text: '',
// 邮件正文
html: `您的验证码为: ******`,
})
FAQ
1. 如何使用免费邮箱发送邮件
下文以网易邮箱为例, 其他邮箱配置过程类似
登录网易邮箱, 进入邮箱中心
开启SMTP, 获取授权密码
将配置保存到上文的配置文件中