引言
安装模块
npm install Nodemailer --save
创建一个SMTP客户端配置
//引入模块 nodemailer const nodemailer = require('nodemailer') const config = { // 163邮箱 为smtp.163.com host: 'smtp.qq.com',//这是QQ邮箱 //端口 port: 465,auth: { // 发件人邮箱账号 user: '[email protected]',//发件人邮箱的授权码 这里可以通过QQ邮箱获取 并且不唯一 pass: 'xxxxxxxxx' } }
创建一个SMTP客户端配置对象
即把 上述的客户端配置作为
nodemailer.createTransport
方法参数传递进去即可
const transporter = nodemailer.createTransport(config)
创建一个收件人对象
即填写发件人和收件人的一些信息,以及发送的内容
const mail = { // 发件人 邮箱 '昵称<发件人邮箱>' from: '车神-黄杰<[email protected]>',// 主题 subject: '激活验证码',// 收件人 的邮箱 可以是其他邮箱 不一定是QQ邮箱 to: 'xxxxxx',// 内容 text: `您的激活验证码为:666888,请24小时内有效,请谨慎保管。`,//这里可以添加html标签 html: '<a href="https://www.cnblogs.com/HJ412/">车神-黄杰</a>' }
发送邮件 调用 transporter.sendMail(mail,callback)
function sendEmail(mail){ transporter.sendMail(mail,function(error,info){ if(error) { return console.log(error); } transporter.close() console.log('mail sent:',info.response) }) }
获取授权码
打开pc端QQ邮箱,点击设置,再点击帐户
完整代码
//引入模块 nodemailer const nodemailer = require('nodemailer') const config = { // 163邮箱 为smtp.163.com host: 'smtp.qq.com',auth: { // 发件人邮箱账号 user: '[email protected]',//发件人邮箱的授权码 这里可以通过QQ邮箱获取 并且不唯一 pass: 'etrdgnwpniclsbfih' } } const transporter = nodemailer.createTransport(config) const mail = { // 发件人 邮箱 '昵称<发件人邮箱>' from: '车神-黄杰<[email protected]>',// 收件人 的邮箱 可以是其他邮箱 不一定是QQ邮箱 to: '[email protected]',// 内容 text: `您的激活验证码为:${checkCode},//这里可以添加html标签 html: '<a href="https://www.cnblogs.com/HJ412/">车神-黄杰</a>' } transporter.sendMail(mail,info){ if(error) { return console.log(error); } transporter.close() console.log('mail sent:',info.response) })
运行 nodemailer.js
即可收到 邮件
注意
有时候发送成功,但收件人收不到邮件,可能因为网络问题,也有可能对方把它作为垃圾邮件了,在对方的垃圾邮箱可查找发送的邮箱。不要拿我的授权码以及邮箱测试,因为我的授权码随时会变。