Nodemailer for JavaScript (Node.js): 完整指南及示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是 Nodemailer,为什么需要它?

\n\n

Nodemailer 是一个用于 Node.js 的模块,它允许您从 JavaScript 应用程序发送电子邮件。它是 Node.js 生态系统中用于处理电子邮件的最流行和最稳定的库之一。它提供了一个简单而强大的 API,用于通过各种传输方式(SMTP、Sendmail、Amazon SES 等)创建和发送消息。

\n\n

为什么需要 Nodemailer?

\n
    \n
  • 自动化通知:发送有关注册、密码重置、订单确认和其他事件的电子邮件。
  • \n
  • 群发邮件:创建新闻通讯、营销活动(谨慎操作,以免进入垃圾邮件)。
  • \n
  • 反馈:从网站上的联系表单发送消息。
  • \n
  • 监控和日志:通知管理员应用程序中的严重错误。
  • \n
  • 灵活性:支持 HTML 模板、附件、内嵌图像和各种编码。
  • \n
\n\n

Nodemailer 抽象了处理电子邮件协议(SMTP、POP3、IMAP)的复杂性,并提供了一个统一、清晰的接口。

\n\n

安装 Nodemailer

\n\n

通过 npm(Node 包管理器)安装 Nodemailer。请确保您已安装 Node.js(版本 12 或更高)。

\n\n

在项目的根文件夹中打开终端并执行命令:

\n\n
npm install nodemailer
\n\n

安装完成后,您可以将该库导入到您的代码中:

\n\n
const nodemailer = require('nodemailer');
\n\n

对于使用 ES 模块的项目(在 package.json 中使用 "type": "module"),请使用导入:

\n\n
import nodemailer from 'nodemailer';
\n\n

快速入门:发送第一封电子邮件

\n\n

发送电子邮件的最简单方法是使用 SMTP 服务器。在此示例中,我们将使用 Gmail 服务。重要提示:要使用 Gmail,您需要创建一个“应用密码”(App Password)或使用 OAuth2。由于 Google 的安全设置,普通帐户密码将不起作用。

\n\n
const nodemailer = require('nodemailer');\n\n// 1. 创建传输方式(发送方式)\nconst transporter = nodemailer.createTransport({\n    service: 'gmail',\n    auth: {\n        user: 'your-email@gmail.com', // 您的电子邮件\n        pass: 'your-app-password'     // 应用密码\n    }\n});\n\n// 2. 配置电子邮件\nconst mailOptions = {\n    from: 'your-email@gmail.com',\n    to: 'recipient@example.com',\n    subject: '来自 Nodemailer 的问候!',\n    text: '这是一封使用 Nodemailer 发送的测试邮件。'\n};\n\n// 3. 发送电子邮件\ntransporter.sendMail(mailOptions, (error, info) => {\n    if (error) {\n        return console.log('错误:', error);\n    }\n    console.log('电子邮件已发送:', info.messageId);\n    console.log('查看 URL:', nodemailer.getTestMessageUrl(info));\n});\n
\n\n

此代码为 Gmail 创建一个传输方式,形成一封简单的文本电子邮件并发送。如果成功,您将在控制台中看到消息 ID。

\n\n

Nodemailer 的主要方法和函数

\n\n

让我们详细了解一下该库提供的关键方法。

\n\n

1. nodemailer.createTransport(options)

\n

功能:创建一个传输对象——这是主要配置,它决定了电子邮件将如何发送(通过哪个服务器以及使用哪些凭据)。

\n

参数:

\n

推荐