电子邮件是—种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。通过网络的电子邮件系统,用户可以以非常低廉的价格(不管发送到哪里,都只需负担网费)、非常快速的方式(几秒钟之内可以发送到世界上任何指定的目的地),与世界上任何一个角落的网络用户联系。在很多项目中,我们都会遇到邮件注册,邮件反馈等需求。在node中收发电子邮件也非常简单,因为强大的社区有各种各样的包可以供我么直接使用。Nodemailer包就可以帮助我们快速实现发送邮件的功能。开始
开始开始这里使用的是qq邮箱,因为qq邮箱的权限比较好设置一些。安装模块
安装模块安装模块
cnpm i nodemailer -S
cnpm i nodemailer -S创建-个SMTP客户端配置创建-个SMTP客户端配置创建-个SMTP客户端配置
//引入模块 nodemailer
const nodemailer = require('nodemailer')

// 创建一个SMTP客户端配置
const config = {

service: "QQ",

auth: {

// 发件人邮箱账号

user: 'xxxxxx@qq.com',

//发件人邮箱的授权码 这里可以通过qq邮箱获取 并且不唯一

pass: 'xxxxxxxxxxx'

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

// 创建一个SMTP客户端配置
const config = {

service: "QQ",

auth: {

// 发件人邮箱账号

user: 'xxxxxx@qq.com',

//发件人邮箱的授权码 这里可以通过qq邮箱获取 并且不唯一

pass: 'xxxxxxxxxxx'

}
}创建一个SMTP客户端配置对象创建一个SMTP客户端配置对象创建一个SMTP客户端配置对象
const transporter = nodemailer.createTransport(config)
const transporter = nodemailer.createTransport(config)创建一个收件人对象创建一个收件人对象创建一个收件人对象
// 验证码随机数
let code = Math.random().toString().substr(2, 4)
const mail = {

// 发件人 邮箱 '昵称<发件人邮箱>'

from: `"web"`,

// 主题

subject: '激活验证码',

// 收件人 的邮箱 可以是其他邮箱 不一定是qq邮箱

to: '',

//这里可以添加html标签

html: `您的激活验证码为:$[code], 请24小时内有效,请谨慎保管。`
}
// 验证码随机数
let code = Math.random().toString().substr(2, 4)
const mail = {

// 发件人 邮箱 '昵称<发件人邮箱>'

from: `"web"`,

// 主题

subject: '激活验证码',

// 收件人 的邮箱 可以是其他邮箱 不一定是qq邮箱

to: '',

//这里可以添加html标签

html: `您的激活验证码为:$[code], 请24小时内有效,请谨慎保管。`
}发送邮件 调用transporter.sendMail(mail, callback)发送邮件 调用transporter.sendMail(mail, callback)发送邮件 调用transporter.sendMail(mail, callback)
transporter.sendMail(mail, function(error, info) {

if (error) {

return console.log(error);

}

transporter.close()

console.log('mail sent:', info.response)

})
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"`,

// 主题

subject: '激活验证码',

// 收件人 的邮箱 可以是其他邮箱 不一定是qq邮箱

to: 'xxxxxxx@163.com',

//这里可以添加html标签

html: `您的激活验证码为:$[code], 请24小时内有效,请谨慎保管。`
}

// 发送邮件 调用transporter.sendMail(mail, callback)
transporter.sendMail(mail, function(error, info) {

if (error) {

return console.log(error);

}

transporter.close()

console.log('mail sent:', info.response)

})
//引入模块 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"`,

// 主题

subject: '激活验证码',

// 收件人 的邮箱 可以是其他邮箱 不一定是qq邮箱

to: 'xxxxxxx@163.com',

//这里可以添加html标签

html: `您的激活验证码为:$[code], 请24小时内有效,请谨慎保管。`
}

// 发送邮件 调用transporter.sendMail(mail, callback)
transporter.sendMail(mail, function(error, info) {

if (error) {

return console.log(error);

}

transporter.close()

console.log('mail sent:', info.response)

})