如何在 Express.js 中通过邮件发送信息

在 Express.js 中,我们可以轻松地使用 Node.js 的 nodemailer 模块来发送邮件。nodemailer 是一个强大的 Node.js 库,可以轻松地发送电子邮件,而且支持不同的传输层安全协议(TLS/SSL)。借助 nodemailer,我们就可以在 Express.js 中发送邮件了。

邮箱服务提供商

在使用 nodemailer 之前,需要先配置邮箱服务提供商的 SMTP 服务器信息。常见的邮件服务提供商有 Gmail、Yahoo、Hotmail 等。以 Gmail 为例,我们需要登录 Gmail 账号后,进入账户安全,开启「允许非安全应用访问」选项,才能使用 nodemailer 发送邮件。

开启步骤:

  1. 打开https://myaccount.google.com/security,进入账户安全页面
  2. 找到「安全性」一栏,找到「允许非安全应用访问」
  3. 点击「开启」

安装 nodemailer

在开始之前,我们需要先安装 nodemailer 模块,可以通过 npm 包管理工具来实现,运行以下命令:

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

示例代码

下面是一个示例 Express.js 应用程序,它使用 nodemailer 模块来发送电子邮件,内容包括接收者的姓名和电子邮件地址:

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

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

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

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

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

在上面的示例中,我们首先使用require('nodemailer')导入 nodemailer 模块,然后创建一个 Express.js 应用程序并设置两个路由:

  1. GET / 路由返回一条欢迎消息;
  2. POST /sendmail路由接收 JSON 格式的请求体,并使用 nodemailer 模块来发送一封包含接收者的姓名和电子邮件地址的电子邮件。

结论

使用 nodemailer,在 Express.js 应用程序中发送电子邮件非常简单。通过使用 nodemailer 在 Express.js 应用程序中发送邮件,我们可以使用 Node.js 的强大功能来轻松地发送电子邮件,而且它容易理解、快速开发、在生产环境中可靠性高。

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