返回
Nodemailer:让QQ邮箱邮件发送更轻松!
前端
2023-01-10 15:18:31
使用 Nodemailer 简化 QQ 邮箱邮件发送
简介
Node.js 是一个备受推崇的 JavaScript 运行时环境,在开发服务器端应用程序方面大显身手。当涉及到邮件服务时,Nodemailer 脱颖而出,成为一个强大而全面的解决方案。借助 Nodemailer,您可以轻松实现 QQ 邮箱邮件的发送和接收,包括附件、抄送和 HTML 格式等功能。
安装和引入 Nodemailer
首先,在您的终端中输入以下命令安装 Nodemailer:
npm install nodemailer
安装完成后,在您的 JavaScript 文件中引入 Nodemailer:
const nodemailer = require('nodemailer');
创建 SMTP 传输器
要连接到 QQ 邮箱服务器,需要创建一个 SMTP 传输器。以下代码演示了如何创建:
const transporter = nodemailer.createTransport({
host: 'smtp.qq.com',
port: 465,
secure: true, // 使用 SSL
auth: {
user: '您的QQ邮箱',
pass: '您的QQ邮箱密码'
}
});
准备邮件内容
接下来,准备邮件内容,包括发件人、收件人、主题、正文和附件等信息:
const mailOptions = {
from: '您的QQ邮箱',
to: '收件人邮箱',
subject: '邮件主题',
text: '邮件正文', // 纯文本内容
html: '<b>邮件正文</b>', // HTML格式内容
attachments: [
{
filename: '附件名称',
path: '附件路径'
}
],
cc: '抄送邮箱' // 抄送邮箱
};
发送邮件
最后一步是发送邮件。您可以使用以下代码:
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
} else {
console.log('邮件发送成功');
}
});
示例代码
以下是一个完整的示例,演示了如何发送带附件和抄送的 HTML 格式 QQ 邮箱邮件:
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: 'smtp.qq.com',
port: 465,
secure: true,
auth: {
user: '您的QQ邮箱',
pass: '您的QQ邮箱密码'
}
});
const mailOptions = {
from: '您的QQ邮箱',
to: '收件人邮箱',
subject: '邮件主题',
text: '邮件正文',
html: '<b>邮件正文</b>',
attachments: [
{
filename: '附件名称',
path: '附件路径'
}
],
cc: '抄送邮箱'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
} else {
console.log('邮件发送成功');
}
});
常见问题解答
1. 如何设置抄送?
使用 cc
字段设置抄送,该字段接受一个电子邮件地址或地址列表。
2. 如何附加文件?
使用 attachments
数组附加文件。每个附件对象应包含 filename
和 path
属性。
3. 如何使用 HTML 格式?
在 mailOptions
对象中使用 html
属性来设置 HTML 格式的内容。
4. 如何设置发件人姓名?
可以使用 from
字段设置发件人姓名,该字段接受一个字符串,例如 "发件人姓名 <发件人邮箱>”。
5. 如果发送失败怎么办?
如果发送失败,sendMail
回调函数将返回一个 error
对象,其中包含错误详细信息。