NodeJS发邮件
在项目需求中,大都情况下我们会遇到要发送邮件的情况,比如说验证码呀
那么,今天咱们试试用NodeJS发送邮件
简介
Nodemailer 是一个简单易用的NodeJS邮件发送插件
支持Windows环境、Unicode编码、HTML内容、附件(大文件)等等
常见的字段:
- from 发送者的邮箱
- sender 发送者区域显示的信息
- to 接受者邮箱
- cc 抄送者邮箱
- subject 密送者邮箱
- html HTML内容
- header 另外加头消息
- encoding 编码格式
安装
npm install --save nodemailer
开启QQ邮箱的SMTP服务
打开QQ邮箱的设置,找到POP3/SMTP服务
选择打开
发送短信之后即可打开,并且收到授权码,将授权码填在对应的代码位置(*****)
封装函数
const nodemailer = require('nodemailer');
// 创建可重用邮件传输器
const transporter = nodemailer.createTransport({
host: "smtp.qq.com", // qq的邮件地址
port: 465, // 端口
secureConnection: false, // use SSL
auth: {
"user": 'yourname@qq.com', // 邮箱账号
"pass": '**************' // 邮箱的授权码
}
});
const send = (mailOptions) => {
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
return console.log(error);
}
console.log('Message send: %s', info.messageId);
});
}
let code = Math.floor(Math.random() * 999999).toString()
let emailCode = code //验证码为6位随机数
let email = {
title: '邮箱验证码',
htmlBody: '<h1>Hello!</h1><p style="font-size: 18px;color:#000;">验证码为:<u style="font-size: 16px;color:#1890ff;">' + emailCode + '</u></p><p style="font-size: 14px;color:#666;">10分钟内有效</p>'
}
let mailOptions = {
from: 'yourname@qq.com', // 发件人地址
to: 'accectname@qq.com', // 收件人地址,多个收件人可以使用逗号分隔
subject: email.title, // 邮件标题
html: email.htmlBody // 邮件内容
};
send(mailOptions)
代码部分如所示,按照上述步骤就行