📅  最后修改于: 2023-12-03 15:23:56.594000             🧑  作者: Mango
在 Web 开发过程中,发送电子邮件是一项常见的任务。Node.js 作为一种服务器端 JavaScript 运行环境,可以通过多个模块进行电子邮件的发送和接收。
本文将介绍如何使用 Node.js 发送电子邮件。我们将使用 nodemailer 这个邮件发送库。
在使用 nodemailer 之前,需要先安装它。通过 Node.js 的包管理器 npm 可以轻松地完成这个任务。
在命令行输入以下命令:
npm install nodemailer
以下是一个示例代码,通过 nodemailer 发送一封电子邮件:
const nodemailer = require('nodemailer');
// 创建邮件传输对象
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'example@gmail.com',
pass: '******'
}
});
// 邮件内容
let mailOptions = {
from: 'example@gmail.com',
to: 'recipient@example.com',
subject: 'Node.js 发送邮件',
text: '这是一封通过 Node.js 发送的电子邮件。'
};
// 发送邮件
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('邮件已发送:' + info.response);
}
});
在使用 nodemailer 发送邮件之前,需要创建一个 transporter 对象。在创建 transporter 对象时,需要指定使用的邮件服务以及认证信息。在示例中,我们使用了 Gmail 作为邮件服务,并提供了用户和密码信息。
在邮件内容中,指定了邮件的发送方、接收方、主题以及正文。
调用 transporter.sendMail() 方法,发送邮件。在发送邮件时,如果有错误发生,将会在回调函数中返回错误信息。如果邮件发送成功,将会返回一个包含邮件发送状态信息的对象。
除了发送纯文本邮件外,nodemailer 也支持发送带附件的邮件。以下是一个示例代码,通过 nodemailer 发送带附件的电子邮件:
const nodemailer = require('nodemailer');
// 创建邮件传输对象
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'example@gmail.com',
pass: '******'
}
});
// 邮件内容
let mailOptions = {
from: 'example@gmail.com',
to: 'recipient@example.com',
subject: 'Node.js 发送邮件',
text: '这是一封通过 Node.js 发送的电子邮件。',
attachments: [
{
filename: 'attachment.txt',
content: '这是一个纯文本附件。'
},
{
filename: 'image.png',
path: '/path/to/image.png'
}
]
};
// 发送邮件
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('邮件已发送:' + info.response);
}
});
在邮件内容中,attachments 字段用于指定附件信息。在示例代码中,我们添加了一个纯文本附件以及一个图像附件。
除了发送纯文本邮件外,nodemailer 也支持发送 HTML 格式的邮件。以下是一个示例代码,通过 nodemailer 发送 HTML 邮件:
const nodemailer = require('nodemailer');
// 创建邮件传输对象
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'example@gmail.com',
pass: '******'
}
});
// 邮件内容
let mailOptions = {
from: 'example@gmail.com',
to: 'recipient@example.com',
subject: 'Node.js 发送邮件',
html: '<h1>这是一封通过 Node.js 发送的 HTML 邮件。</h1><p>这是一个段落。</p>'
};
// 发送邮件
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('邮件已发送:' + info.response);
}
});
在邮件内容中,我们使用了 html 字段来指定 HTML 格式的邮件内容。
通过 nodemailer,我们可以方便地在 Node.js 应用程序中发送电子邮件。在示例代码中,我们演示了如何发送纯文本邮件、带附件的邮件以及 HTML 邮件。