Nodemailer

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

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

开始课程

Nodemailer: 在 JavaScript (Node.js) 中发送电子邮件

Nodemailer 是从 Node.js 应用程序发送电子邮件最流行的模块。它提供了简单灵活的 API 用于与 SMTP 服务器交互,并支持 HTML 模板、附件、流传输以及多种传输方式 (SMTP、Sendmail、Amazon SES 等)。

为什么需要 Nodemailer?

在 Web 应用程序中,经常需要发送邮件:注册确认、密码重置、通知、群发邮件。Nodemailer 可以在没有多余依赖的情况下实现这一点,并支持 OAuth2、SSL/TLS 和编码。它异步运行,不会阻塞事件循环。

安装

通过 npm 安装模块:

npm install nodemailer

要使用 Gmail 或 Yandex.Mail,可能需要进行额外配置(应用密码或 OAuth2)。

主要功能

  • 通过 SMTP、Sendmail、AWS SES、Mailgun、SendGrid 发送
  • 支持 HTML 和纯文本邮件
  • 附件(文件、图像、Buffer、流)
  • OAuth2 身份验证(Gmail、Outlook)
  • 用于批量发送的连接池
  • 模板化(Handlebars、EJS 集成)

JavaScript (Node.js) 代码示例

通过 Gmail SMTP 发送邮件的简单示例:

const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-app-password'
}
});

const mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: '来自 Node.js 的问候',
html: '<h1>测试邮件</h1><p>通过 Nodemailer 发送</p>'
};

transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log('错误:', error);
} else {
console.log('邮件已发送:', info.response);
}
});

何时使用

Nodemailer 适用于任何需要发送邮件的 Node.js 项目:从简单的脚本到企业应用程序。它稳定、文档完善,并受到数千名开发者的支持。如果您需要进行批量发送(时事通讯),最好使用专门的 API 服务(SendGrid、Mailchimp),但对于事务性邮件,Nodemailer 是理想选择。

推荐