nodemailer

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

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

开始课程

用于发送电子邮件的 TypeScript 版 Nodemailer 库

nodemailer 是一个基于 TypeScript 编写、功能强大且流行的 Node.js 库,可让您轻松从服务器端应用程序发送电子邮件。它支持所有现代协议(SMTP、SES、Sendmail)和邮件格式(HTML、纯文本、附件)。

为什么需要 nodemailer?

在 Web 开发中,经常需要发送通知、注册确认、密码重置或营销邮件。nodemailer 通过提供简单灵活的 API 来与邮件服务器交互,解决了这一问题。得益于 TypeScript 的类型定义,代码变得更加可靠和可预测。

安装

通过 npm 或 yarn 安装该包:

npm install nodemailernpm install -D @types/nodemailer

对于 TypeScript,请务必安装类型包。

主要功能

  • 支持 SMTP — 可与任何 SMTP 服务器(Gmail、Yandex、Mailgun、SendGrid)配合使用。
  • HTML 和纯文本邮件 — 既可发送纯文本,也可发送带格式的 HTML 消息。
  • 附件 — 支持文件、图片和内联附件。
  • 流式传输 — 可通过流式传输发送大文件。
  • 安全性 — 支持 TLS/SSL、OAuth2。
  • 连接池 — 针对批量发送进行优化。

TypeScript 代码示例

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

import nodemailer from 'nodemailer';

async function sendEmail() { const transporter = nodemailer.createTransport({ host: 'smtp.gmail.com', port: 587, secure: false, // 端口 465 时设为 true auth: { user: 'your-email@gmail.com', pass: 'your-password', }, });

const info = await transporter.sendMail({ from: '"Sender Name" <your-email@gmail.com>', to: 'recipient@example.com', subject: '来自 TypeScript 的问候!', text: '这是邮件正文。', html: '<b>这是一封 HTML 邮件</b>', });

console.log('邮件已发送:', info.messageId);}

sendEmail().catch(console.error);

何时使用 nodemailer

该库非常适合用于:

  • 基于 Node.js/Express/NestJS 的后端应用程序。
  • 自动通知(注册、订单、错误)。
  • 电子邮件地址验证。
  • 发送事务性邮件。
  • 与任何 SMTP 提供商集成。

如果您需要发送包含附件、HTML 模板或通过外部服务(SendGrid、Mailgun)的邮件,nodemailer 是 Node.js 生态系统中的事实标准。

重要提示: 在生产环境中,请使用环境变量来存储密码和配置 OAuth2,以免在代码中泄露凭证。

推荐