第一步,开启邮箱SMTP服务
这里以网易163邮箱为例,登录邮箱后,依次点击“设置-POP3/SMTP/IMAP” ,然后开启SMTP服务。这时候会提示一个授权码,例如:HMASDWFASCZSMTAS,一定要记下来,一会会用到。
第二步,引入nodemailer模块
npm install nodemailer
写一个工具文件/utils/ mailer.js
const nodemailer = require('nodemailer')
// 配置信息
const mailconfig = {
host: 'smtp.163.com', // 是什么邮箱,就修改为什么格式,如qq邮箱为:smtp.qq.com
port: 465, // 默认端口
auth: {
user: 'XXXXXXXXXXXX@163.com', // 注册的163邮箱账号
pass: 'XXXXXXXXXXXXXXXX' // 邮箱的授权码,不是注册时的密码,等你开启的stmp服务自然就会知道了
}
}
// 创建一个SMTP客户端对象
const transporter = nodemailer.createTransport(mailconfig)
// 发送邮件
function send_verify (mail) {
transporter.sendMail(mail, function (error, info) {
if (error) {
console.log(error)
} else {
console.log('mail sent:' + info.response)
}
})
}
module.exports = {
mailconfig,
send_verify
}
设置好发送对象及内容,就可以进行发送邮件了。(ps:文件内容可以是html格式)
const mailer = require('../utils/mailer')
let verify = Math.random().toFixed(6).slice(-6)// 随机6位验证码
// 发送前准备
var mail = {
// 发件人
from: '<' + mailer.mailconfig.auth.user + '>',
// 主题
subject: '测试服务平台-邮箱验证', // 邮箱主题
// 收件人
to: id, // 前台传过来的邮箱
// 邮件内容,HTML格式
text: '<h1>尊敬的用户您好:</h1><br>' +
'<h5> 您正在进行邮箱验证,本次验证码为:<span style="color:#ec0808;font-size: 20px;">' + verify + '</span>,请在10分钟内进行使用。</h5>' +
'<h5>如非本人操作,请忽略此邮件,由此给您带来的不便请谅解!</h5> <h5 style="text-align: right;">--测试服务平台</h5>'
}
// 发送邮件
mailer.send_verify(mail)
邮件效果如下: