Nodemailer — 在 TypeScript 中发送电子邮件

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

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

开始课程

什么是Nodemailer以及为什么需要它?

Nodemailer 是在 Node.js 环境中发送电子邮件最流行的模块。它使用 JavaScript 编写,由于内置类型(DefinitelyTyped),可以与 TypeScript 完美配合。该库允许通过 SMTP、Sendmail、Amazon SES 和其他传输方式发送邮件。在 TypeScript 项目中,Nodemailer 为所有选项提供严格的类型检查,从而减少了编译阶段的错误数量。

安装

执行以下命令进行安装:

npm install nodemailer @types/nodemailer

@types/nodemailer 包添加了 TypeScript 所需的类型声明。

主要功能

  • 通过 SMTP 发送邮件 — 支持 Gmail、Yandex、Mail.ru、SendGrid 以及任何其他 SMTP 服务器。
  • 附件 — 可以附加文件、图片、PDF。
  • HTML 模板 — 发送格式化 HTML 内容的邮件。
  • 支持 SSL/TLS — 安全数据传输。
  • 连接池 — 针对批量发送进行优化。

TypeScript 代码示例

以下是一个通过 Gmail SMTP 使用 TypeScript 发送邮件的最小示例:

import nodemailer from 'nodemailer';

interface MailOptions { from: string; to: string; subject: string; text?: string; html?: string;}

async function sendEmail(options: MailOptions): Promise<void> { const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'your@gmail.com', pass: 'your-app-password', }, });

const info = await transporter.sendMail(options); console.log('邮件已发送:', info.messageId);}

// 使用示例sendEmail({ from: 'your@gmail.com', to: 'recipient@example.com', subject: '来自 TypeScript 的问候!', html: '<h1>测试邮件</h1><p>通过 Nodemailer 发送</p>',});

重要提示: 对于 Gmail,需要使用应用专用密码(App Password),而不是常规密码。

何时使用 Nodemailer?

该库适用于:

  • 注册邮件(确认电子邮件、密码恢复)。
  • 在线商店的订单通知。
  • 新闻简报和营销邮件(使用队列)。
  • 后端自动报告(日志、错误、统计数据)。

如果你需要在一个 TypeScript 项目中发送电子邮件,Nodemailer 凭借其灵活性、可靠性和庞大的社区支持,仍然是事实上的标准。

推荐