Node.js 中使用 nodemailer 发送邮件的方法

阅读时长 4 分钟读完

前言

在前端开发中,有时候需要向用户发送邮件,比如注册成功后发送欢迎邮件,或者找回密码时发送重置邮件等。Node.js 中有一个非常方便的邮件发送库 nodemailer,可以帮助我们轻松地实现邮件发送功能。本文将介绍 nodemailer 的使用方法。

安装 nodemailer

使用 npm 安装 nodemailer:

发送邮件

使用 SMTP

nodemailer 支持使用 SMTP 协议发送邮件,需要提供 SMTP 服务器的地址、端口、用户名和密码等信息。以下是一个示例:

-- -------------------- ---- -------
----- ---------- - ----------------------

-- ---- ---- -----------
----- ----------- - ----------------------------
  ----- -----------------
  ----- ----
  ------- -----
  ----- -
    ----- -----------------------
    ----- ---------------
  -
---

-- ------
----- ----------- - -
  ----- -----------------------
  --- ------------------------------
  -------- ----- -------
  ----- ----- -- - ---- ----- ---- ------------
--

-- ----
--------------------------------- ------- ----- -- -
  -- ------- -
    ---------------------
  - ---- -
    ------------------ ------- ---------------
  -
---

上面的代码创建了一个 SMTP transporter,并使用 Gmail 的 SMTP 服务器发送了一封邮件。需要注意的是,如果你使用的是 Gmail 的 SMTP 服务器,需要开启“允许 less secure apps”选项。这个选项可以在 Google 帐号的安全性设置中找到。

使用其他协议

除了 SMTP,nodemailer 还支持使用其他协议发送邮件,比如 Sendmail、Amazon SES、Mailgun 等。这些协议的使用方法和 SMTP 类似,只需要提供相应的配置信息即可。以下是一个使用 Sendmail 的示例:

-- -------------------- ---- -------
----- ---------- - ----------------------

-- ---- -------- -----------
----- ----------- - ----------------------------
  --------- -----
  -------- -------
  ----- --------------------
---

-- ------
----- ----------- - -
  ----- -------------------------
  --- ------------------------------
  -------- ----- -------
  ----- ----- -- - ---- ----- ---- ------------
--

-- ----
--------------------------------- ------- ----- -- -
  -- ------- -
    ---------------------
  - ---- -
    ------------------ ------- ---------------
  -
---

更多选项

除了上面介绍的基本选项外,nodemailer 还支持很多其他选项,比如设置邮件的 HTML 内容、添加附件、设置邮件的优先级等。具体的选项可以参考 nodemailer 的官方文档。

总结

本文介绍了 nodemailer 的使用方法,包括使用 SMTP 和其他协议发送邮件,以及一些常用选项。nodemailer 是一个非常方便的邮件发送库,可以帮助我们轻松地实现邮件发送功能。希望本文能够对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/650c452195b1f8cacd64d911

纠错
反馈