Node使用Nodemailer发送邮件的方法实现

2020-06-17 08:01:27易采站长站整理

电子邮件是—种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。通过网络的电子邮件系统,用户可以以非常低廉的价格(不管发送到哪里,都只需负担网费)、非常快速的方式(几秒钟之内可以发送到世界上任何指定的目的地),与世界上任何一个角落的网络用户联系。

在很多项目中,我们都会遇到邮件注册,邮件反馈等需求。在node中收发电子邮件也非常简单,因为强大的社区有各种各样的包可以供我么直接使用。Nodemailer包就可以帮助我们快速实现发送邮件的功能。

开始

这里使用的是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: {