Express.js 中使用 NodeMailer 自动发送邮件

引言

在 Web 开发中,邮件功能是一个非常重要的功能,它可以用来发送重要信息、验证用户身份等。而且,许多应用都需要自动化地发送邮件。在 Node.js 中,有一个非常流行的邮件库,它就是 Nodemailer。

Nodemailer 是基于 Node.js 平台的邮件库,可以用于发送邮件到各种 SMTP 服务器。它有许多功能,如支持 HTML 内容、附加文件、SMTP 认证、TLS/SSL 加密等等。在 Express.js 中使用 Nodemailer 发送邮件非常简单和方便,因此本文将详细介绍如何在 Express.js 中使用 Nodemailer 自动发送邮件。

安装 Nodemailer

在使用 Nodemailer 之前,我们需要安装它。可以通过 npm 来安装 Nodemailer,只需要使用以下命令:

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

使用 Nodemailer 发送邮件

发送邮件需要 SMTP 服务器的信息,而这个信息需要从邮件服务提供商(如 Gmail、Hotmail 等)中获得。本文以 Gmail 为例,下面是 Gmail 的 SMTP 服务器信息:

  • SMTP 服务器地址:smtp.gmail.com
  • SMTP 端口号:465
  • 加密方式:SSL

在使用 Nodemailer 发送邮件前,我们需要先进行 SMTP 认证。这意味着我们需要提供 Gmail 的用户名和密码。下面是 Express.js 中使用 Nodemailer 发送邮件的代码:

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

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

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

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

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

上面的代码展示了如何使用 Nodemailer 发送一封简单的文本邮件。首先,我们创建一个 SMTP transporter,它需要传递一个配置对象。在配置对象中,我们指定服务为 Gmail,并提供 Gmail 的认证信息:用户名和密码。然后,我们创建一个邮件选项对象,其中包含了发送邮件所需要的信息,如发件人地址、收件人地址、邮件主题和邮件内容。然后,我们调用 transporter.sendMail 方法发送邮件。如果发送成功,就会在控制台输出邮件发送成功的信息,并返回 "Email sent!" 响应给客户端。

结论

在本文中,我们介绍了如何在 Express.js 中使用 Nodemailer 发送邮件。我们首先安装了 Nodemailer,并提供了使用 Gmail 发送邮件的示例代码。当然,我们也可以使用其他邮件服务提供商来发送邮件。Nodemailer 支持多种服务提供商和各种 SMTP 服务器,因此我们可以根据自己的需求来选择。

参考资料

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/670e74b35f5512810260f075