npm 包 node-mjml-mustache-nodemailer 使用教程

阅读时长 10 分钟读完

前言

随着互联网的发展,电子邮件成为了一种不可或缺的通信方式,而且越来越多的网站也需要通过邮件来与用户进行交互。在邮件的发送及渲染过程中,常常需要处理 HTML 页面及模板引擎,这也就引发了前端工程师对邮件渲染的考虑。

基于此,本文介绍了一种利用 npm 包 node-mjml-mustache-nodemailer 来实现邮件渲染,模板引擎以及邮件发送的方法。

什么是 npm?

npm 是 node.js 中的包管理工具,提供了一个丰富的代码库和强大的搜索和安装功能。在本文中,我们将使用 npm 包来进行项目开发。

什么是 node-mjml-mustache-nodemailer?

node-mjml-mustache-nodemailer 是一组功能强大的 npm 包,结合了两个著名的 node.js 包:nodemailermjml/mjmlnodemailer 是用于发送电子邮件的 node.js 库,可以通过 SMTP 或其他传输协议发送邮件。mjml/mjml 是一个基于 HTML 的邮件模板语言,可以通过简单的 HTML 标记来快速构建响应式邮件。

本文将介绍如何使用 node.js + mjml + mustache + nodemailer 实现创建 HTML 邮件,并将其发送到指定的收件人。

安装

在进行项目开发之前,首先需要安装必要的依赖库。通过 npm 可以很方便的完成依赖的安装。

使用

安装完成后,我们需要在代码中引入相关库,如下所示:

生成 HTML 邮件

HTML 邮件的创建很类似于普通的 HTML 页面。 mjml 提供了丰富的组件来让你构建你的邮件。

页面模板定义需要执行 mjml2html 函数,mjml模板编译成 html 格式,例如:

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

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

上述代码中的 {{name}} 和 {{url}} 会被 Mustache 引擎动态替换成传入的值。

发送邮件

我们使用 Nodemailer 进行邮件的发送操作,代码如下:

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

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

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

在实际发送中,需要正确填写 userpass 的值,同时设置正确的 fromto 地址即可。

示例代码

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

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

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

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

每次执行此函数,将会向指定的电子邮件地址发送 HTML 邮件。

总结

在本文中,我们介绍了 npm 包 node-mjml-mustache-nodemailer 的使用方法。我们演示了如何使用 mjml 和 Mustache 引擎来生成模板,同时使用 nodemailer 库发送电子邮件。这个过程非常简单,使用 node-mjml-mustache-nodemailer,我们的邮件模板可以变得非常简洁和易于管理。当然,我们还可以利用 mjml 定制我们自己的 HTML 邮件模板,使邮件更加美观。

希望本教程可以对前端工程师们有所帮助。

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

纠错
反馈