Express.js 中使用 nodemailer 发送邮件

在开发 Web 应用程序时,发送电子邮件是一项经常使用的任务,例如,向用户发送帐户验证电子邮件或密码重置电子邮件。Express.js 是一种流行的服务器端 JavaScript 框架,而 nodemailer 是一个可靠的 Node.js 库,用于发送电子邮件。

在本文中,我们将介绍如何在 Express.js 中使用 nodemailer 库来发送电子邮件。

安装 nodemailer

在使用 nodemailer 之前,我们需要将其安装为项目的依赖项。可以通过 NPM 使用以下命令进行安装:

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

配置 nodemailer

在配置 nodemailer 之前,我们需要使用邮箱提供商提供的凭据,如 SMTP 主机,SMTP 端口,SMTP 用户名和 SMTP 密码。

以下是一个示例 Gmail 邮箱配置:

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

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

在上面的代码中,我们使用 Gmail 的 SMTP 主机和端口,并提供我们的 Gmail 帐户的用户名和密码。

发送邮件

现在我们已经配置了 nodemailer,我们可以通过使用其 .sendMail() 方法来发送电子邮件。

以下代码演示如何向一个收件人发送电子邮件:

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

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

上面的代码将使用给定的 nodemailer transporter 向 recipient_email@example.com 发送电子邮件。邮件将包含一个名为 "Testing nodemailer" 的主题和一个简单的文本消息 "Hello World!"。

在上面的代码块中,我们使用 .sendMail() 方法传递一个包含电子邮件的对象。该对象应包含以下内容:

  • from:发送邮件的邮箱地址
  • to:收件人邮箱地址
  • subject:电子邮件主题
  • text:电子邮件正文

请注意,此方法是异步的,因此建议使用回调函数处理错误和成功信息。

发送 HTML 格式的邮件

nodemailer 还提供了一种方法 html 以 HTML 格式发送电子邮件。

以下代码演示如何以 HTML 格式发送电子邮件:

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

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

上面的代码将使用给定的 nodemailer transporter 向 recipient_email@example.com 发送电子邮件,电子邮件将在 HTML 格式中包含 "Hello World!" 和 "This is HTML email."。

发送附件

nodemailer 还支持添加附件到电子邮件中。以下代码演示如何向电子邮件添加附件:

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

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

在上面的代码中,我们使用 .attachments 属性向电子邮件添加名为 "image.jpg" 的附件。我们还通过 path 属性指定附件的路径。

总结

nodemailer 是一个可靠的 Node.js 库,用于发送电子邮件。它很容易与 Express.js 集成,并提供各种发送电子邮件以及添加 HTML 和附件的选项。

在本文中,我们演示了如何在 Express.js 中配置和使用 nodemailer 来发送电子邮件。如果您正在开发需要发送电子邮件的应用程序,nodemailer 可以是一个非常好的选择。

示例代码

完整的示例代码可在以下代码块中找到:

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

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

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

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

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

在上面的代码中,我们创建了一个 Express.js 应用程序,并通过访问 localhost:3000/send URL 发送电子邮件。请务必替换 your_email@gmail.comyour_password 以及 recipient_email@example.com 以适合您的配置。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65b0b9f9add4f0e0ffa132b9


猜你喜欢

  • 使用 ES9 的 Array.flat 方法实现数组扁平化

    在开发前端应用时,经常会遇到需要处理多维数组的情况,而当我们需要将一个多维数组转换为一维数组时,如果手动的进行操作,往往会变得十分繁琐和耗时。而在 ES9 中新增的 Array.flat 方法,可以帮...

    9 个月前
  • 使用 Express.js 和 Mongoose 创建 MongoDB 数据模型

    介绍 在现代 Web 应用程序中,访问数据库是至关重要的。MongoDB 是一个非常流行的 NoSQL 数据库,经常被用于建立 Web 应用。在这篇文章中,我们将学习如何使用 Express.js 和...

    9 个月前
  • Deno Https 模块使用教程

    Deno 是一个安全的 TypeScript 运行时环境,为开发者提供了许多实用的模块和工具,其中就包括了 Https 模块。本教程将为读者详细介绍 Deno Https 模块的使用方法。

    9 个月前
  • ES6 中的箭头函数注意事项

    前言 随着JavaScript的发展,我们可以看到越来越多的ES6语法在前端开发中被广泛应用,其中最为常用和重要的语法之一就是箭头函数,它是ES6中新增的一种函数定义方式。

    9 个月前
  • Koa.js 项目中如何配置 Webpack

    在 Koa.js 项目中,使用 Webpack 是一个很好的选择。Webpack 可以帮助我们实现模块化、自动化构建等功能,从而提高项目的开发效率和维护性。本文将详细介绍如何在 Koa.js 项目中配...

    9 个月前
  • 使用 Kubernetes 管理 Pod 的资源限制与推荐限制

    在 Kubernetes 中,Pod 是最小的可扩展单元。Pod 的资源限制和推荐限制对于系统的整体性能和稳定性都有着至关重要的作用。本文将介绍 Kubernetes 中如何管理 Pod 的资源限制和...

    9 个月前
  • ESLint 报告 'require' is not defined

    ESLint 报告 'require' is not defined 前言 在前端开发中,为了保证代码的规范性和可读性,我们通常会使用一些代码检查工具,比如比较常用的 ESLint。

    9 个月前
  • 超级详细的 ES8 异步、并发和锁基础教程!

    超级详细的 ES8 异步、并发和锁基础教程! 如果你是一名前端开发工程师,一定会面临处理异步、并发和避免锁的问题。ES8 是一种最新的 JavaScript 标准,它引入了许多新的特性和函数,可以帮助...

    9 个月前
  • 如何使用 Mocha 测试 WebRTC 应用程序

    简介 WebRTC 是一种实时通信技术,能够在浏览器中使用音频、视频和文本通信。为了确保 WebRTC 应用程序能够正常工作,我们需要对其进行测试。Mocha 是一个 JavaScript 测试框架,...

    9 个月前
  • SASS 编译错误: Undefined mixin 'border-radius',怎么办?

    SASS 是一种 CSS 预处理器,它允许开发者使用变量、函数、嵌套等功能,使得 CSS 编写更加高效和简洁。但是,当我们在使用 SASS 编写样式时,遇到了类似于 Undefined mixin '...

    9 个月前
  • 在 Hapi 应用程序中使用 Redis 缓存的指南

    什么是 Redis 缓存 Redis 是一款高性能、基于内存的键值存储数据库,它支持多种数据结构,如字符串、列表、哈希等。Redis 的特点是读写速度极快,数据存储在内存中,可以提供非常高的性能。

    9 个月前
  • 使用 Chai 和 Sinon.js 优化 UI 组件测试案例实现

    在前端开发中,测试是非常重要的环节。特别是在开发 UI 组件的过程中,我们需要通过测试保证代码的可靠性和稳定性。本文将介绍如何使用 Chai 和 Sinon.js 优化 UI 组件的测试案例实现。

    9 个月前
  • RxJS 中的 merge 操作符详解

    在 RxJS 中,merge 操作符是一种非常重要且常用的操作符。它可以将多个 Observable 序列合并为一个单独的 Observable 序列,并发射它们所发射的所有项。

    9 个月前
  • 理解 AngularJS 的 ng-repeat 指令

    在 AngularJS 中,ng-repeat 指令是用来绑定数组或对象数据到 HTML 模板的一个非常强大的指令。它的作用是循环遍历数组或对象中的每一个元素,并将元素的值绑定到模板中指定的位置。

    9 个月前
  • ES10 中的 Array.sort() 方法详解以及使用示例

    ES10 中的 Array.sort() 方法详解以及使用示例 前言 Array.sort() 是 JavaScript 中用于对数组进行排序的方法。它是一个非强制性的方法,可以以参数的形式接受一个比...

    9 个月前
  • 使用 Serverless Framework 实现部署自动化

    随着云计算的不断发展,云函数成为了越来越多开发者的选择。而 Serverless Framework 是一款非常优秀的 Serverless 框架,旨在帮助开发者快速搭建云函数应用。

    9 个月前
  • ES2021 中的 Promise.allSettled() 方法及其优劣比较 —— 值得一看

    随着 JavaScript 的发展,Promise 对于处理异步操作已经变成了必用的工具之一。而在 ES2021 中引入的 Promise.allSettled() 方法则给 Promise 的使用带...

    9 个月前
  • Express.js 中使用 joi 模块进行请求数据验证

    在前端开发中,请求数据的验证是非常重要的一环。为了提高系统的安全性和可靠性,我们需要对数据进行验证。而 joi 则是 Node.js 中一个非常优秀的数据验证库,它可以让我们能够更加方便快捷地对请求数...

    9 个月前
  • 详解 Babel-preset-react 的安装和使用

    前言 在 Web 开发中,React 是目前最流行的前端框架之一,但是它的语法需要通过 JSX 来实现,这使得大部分浏览器无法直接执行。因此,我们需要将 JSX 转换成 JavaScript,这就需要...

    9 个月前
  • Deno 中如何使用第三方容器部署服务

    前言 Deno 是一门基于 V8 引擎的 TypeScript 运行时,在类似 Node.js 的环境下,用于开发服务器端应用程序和命令行工具。它内置了标准库,具有更好的热加载、调试和依赖管理等特性,...

    9 个月前

相关推荐

    暂无文章