Node.js 使用 Nodemailer 发送 QQ 邮箱教程
本文介绍如何在 Node.js 项目中通过 Nodemailer 模块发送电子邮件。重点讲解 QQ 邮箱的 SMTP 配置方法,包括获取授权码、创建传输对象及构建邮件内容。提供完整代码示例,涵盖验证码生成与发送流程,帮助开发者快速实现邮件通知功能。
电子邮件与 Node.js 邮件发送概述
电子邮件是一种利用电子手段进行信息交换的通信方式,也是互联网上应用最为广泛的服务之一。借助网络邮件系统,用户可以以极低的成本(无论目的地何处,仅需支付网络费用)和极高的速度(数秒内即可送达全球任何指定收件人)与世界各地用户保持联系。
在各类项目开发中,邮件注册验证、用户反馈等场景十分常见。在 Node.js 环境中实现邮件收发功能相对便捷,得益于活跃的社区生态,开发者可以直接调用成熟的第三方库。其中,Nodemailer 包是快速实现邮件发送功能的理想选择。
准备工作
本教程以 QQ 邮箱为例,因其权限配置流程相对简单,便于演示。
环境配置与代码实现
安装依赖模块
cnpm i nodemailer -S
接下来,需要创建一个 SMTP 客户端的配置对象。
//引入模块 nodemailer
const nodemailer = require('nodemailer')
// 创建一个SMTP客户端配置
const config = {
service: "QQ",
auth: {
// 发件人邮箱账号
user: 'xxxxxx@qq.com',
//发件人邮箱的授权码 这里可以通过qq邮箱获取 并且不唯一
pass: 'xxxxxxxxxxx'
}
}
具体而言,需定义包含服务类型及认证信息的配置对象。
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 方法并传入邮件对象及回调函数,即可执行发送操作。
transporter.sendMail(mail, function(error, info) {
if (error) {
return console.log(error);
}
transporter.close()
console.log('mail sent:', info.response)
})
关于 QQ 邮箱权限的配置,需在邮箱设置中开启 SMTP 服务并获取授权码。
完成上述配置后,即可顺利发送电子邮件。
以下是完整的代码演示。
//引入模块 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)
})
至此,关于 Node.js 使用 Nodemailer 发送邮件的实现方法介绍完毕。如需了解更多相关内容,建议查阅本站往期文章或继续浏览后续教程,感谢大家的支持。
Java和JavaScript的应用场景分工:后端企业级开发与Web前端交互
2026-11-05 15:57:34
除了浏览器和Node.js,还有哪些轻量级Js脚本运行工具?
2026-11-04 17:38:24
无需后端:用JavaScript实现简单网站的本地数据存储
2026-11-03 23:03:30
Node.js 下载慢或官网打不开怎么办
2026-11-03 18:19:37
JS解析大体积Excel文件内存溢出怎么办
2026-11-03 18:19:37
