使用Nodemailer发送邮件

4,791 阅读1分钟

开始

这里使用的是qq邮箱,因为qq邮箱的权限比较好设置一些。

安装模块

cnpm i nodemailer -S

创建-个SMTP客户端配置

 //引入模块 nodemailer
 const nodemailer = require('nodemailer')

 // 创建一个SMTP客户端配置
 const config = {
     service: "QQ",
     auth: {
         // 发件人邮箱账号
         user: 'xxxxxx@qq.com',
         //发件人邮箱的授权码 这里可以通过qq邮箱获取 并且不唯一
         pass: 'xxxxxxxxxxx'
     }
 }

创建一个SMTP客户端配置对象

 const transporter = nodemailer.createTransport(config)

创建一个收件人对象

 // 验证码随机数 
 let code = Math.random().toString().substr(2, 4)
 const mail = {
     // 发件人 邮箱  '昵称<发件人邮箱>'
     from: `"web"<xxxx@qq.com>`,
     // 主题
     subject: '激活验证码',
     // 收件人 的邮箱 可以是其他邮箱 不一定是qq邮箱
     to: '',
     //这里可以添加html标签
     html: `<b>您的激活验证码为:${code}, 请24小时内有效,请谨慎保管。</b>`
 }

发送邮件 调用transporter.sendMail(mail, callback)

 transporter.sendMail(mail, function(error, info) {
         if (error) {
             return console.log(error);
         }
         transporter.close()
         console.log('mail sent:', info.response)
     })

qq权限的设置

最后就可以愉快的可以发送邮件啦

完整代码演示

 //引入模块 nodemailer
 const nodemailer = require('nodemailer')

 // 验证码随机书
 let code = Math.random().toString().substr(2, 4)

 // 创建一个SMTP客户端配置
 const config = {
     service: "QQ",
     auth: {
         // 发件人邮箱账号
         user: 'xxxxxxxxx@qq.com',
         //发件人邮箱的授权码 这里可以通过qq邮箱获取 并且不唯一
         pass: 'xxxxxxxxxxxxxxxxxxxxxx'   //授权码生成之后,要等一会才能使用,否则验证的时候会报错,但是不要慌张哦
     }
 }


 //创建一个SMTP客户端配置对象
 const transporter = nodemailer.createTransport(config)

 //创建一个收件人对象
 const mail = {
     // 发件人 邮箱  '昵称<发件人邮箱>'
     from: `"web"<xxxxxxxxxx@qq.com>`,
     // 主题
     subject: '激活验证码',
     // 收件人 的邮箱 可以是其他邮箱 不一定是qq邮箱
     to: 'xxxxxxx@163.com',
     //这里可以添加html标签
     html: `<b>您的激活验证码为:${code}, 请24小时内有效,请谨慎保管。</b>`
 }

 //  发送邮件 调用transporter.sendMail(mail, callback)
 transporter.sendMail(mail, function(error, info) {
         if (error) {
             return console.log(error);
         }
         transporter.close()
         console.log('mail sent:', info.response)
     })