Nodemailer

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

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

开始课程

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

Nodemailer 是从 Node.js 应用程序发送电子邮件最流行的模块。它提供了一个简单灵活的 API,用于处理各种邮件服务(SMTP、Gmail、Outlook、SendGrid 等)。该库支持 HTML 模板、附件、流,以及通过 OAuth2 进行安全认证。

为什么需要 Nodemailer?

  • 发送事务性邮件(注册确认、密码重置)。
  • 发送通知和营销活动。
  • 与网站上的反馈表单集成。
  • 自动发送报告和日志。

安装

通过 npm 安装模块:

npm install nodemailer

主要功能

  • 传输 — 配置 SMTP 服务器或使用内置传输(Gmail、Mailgun、SendGrid)。
  • 邮件格式化 — 支持 HTML、文本、附件(文件、图像、PDF)。
  • 流 — 能够发送大文件而无需加载到内存。
  • OAuth2 — 为 Gmail 和其他提供商提供安全认证。
  • 连接池 — 批量发送时的性能优化。

JavaScript (Node.js) 代码示例

const nodemailer = require('nodemailer');

// 配置传输(使用 Gmail)
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-password' // 或使用应用密码
}
});

// 邮件参数
const mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: '来自 Nodemailer 的问候!',
html: '<h1>这是一封测试邮件</h1><p>通过 Node.js 发送。</p>',
attachments: [{
filename: 'document.pdf',
path: './files/document.pdf'
}]
};

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

何时使用 Nodemailer?

该库适用于任何需要发送电子邮件的 Node.js 项目:从小型博客到企业系统。Nodemailer 可以轻松与框架(Express、Koa)和云服务集成。如果您需要发送带附件、HTML 排版或通过 OAuth2 的邮件,这是最佳选择。

请注意:在生产环境中,建议使用专业服务(SendGrid、Amazon SES)或 SMTP 中继,以避免被屏蔽。Nodemailer 支持所有主流提供商。

推荐