npm 包 responsive-email 使用教程

阅读时长 8 分钟读完

在现今互联网快速发展的时代,电子邮件仍然是企业与用户推广、沟通的重要渠道之一。然而,现实告诉我们,在不同的终端设备、各种邮件客户端上,电子邮件的呈现样式千差万别。在这种情况下,如何保证邮件在各种设备和客户端上呈现一致,显得尤为重要。为了解决这一问题,一个名为 responsive-email 的 npm 包应运而生。

简介

responsive-email 是一款基于 node.js 的响应式电子邮件框架,可以根据实际显示设备自适应地调整邮件的布局和内容,从而保证邮件在各种设备和客户端上的显示效果一致,并且可以快速地构建和发送响应式电子邮件。

安装

为了使用 responsive-email,我们需要先安装 node.js。可以在 node.js 官网 上下载并安装适合自己操作系统的版本。

安装完 node.js 后,我们可以通过命令行(Terminal 或者命令提示符)输入以下命令安装 responsive-email:

上述命令会将 responsive-email 包及其依赖包安装到当前项目中,并且将它们添加到 package.json 中。

使用方法

编写邮件代码

在使用 responsive-email 构建电子邮件之前,我们需要编写邮件代码。我们可以在自己的项目中,新建一份 .html 文件,并在其中编写需要发送的邮件内容。以邮件标题和正文为例:

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

在正式构建电子邮件之前,需要注意以下几个问题:

  • 邮件中所使用的样式必须都要内嵌在邮件 HTML 文件中,因为有些邮件客户端会忽略外部 CSS 样式。

  • 编写邮件时需注意性能问题,不要过分依赖 JavaScript 代码,尽可能使用 CSS 解决问题。此外,只有少数邮件客户端支持 JavaScript,更多时候它被禁用。

  • 邮件内容中的图片需要指定绝对路径,否则在有些邮件客户端中可能不能正常显示。

创建邮件

我们可以通过如下方式,创建邮件对象:

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

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

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

----- ----- - --- ----------------------------------------- -------------
  • from:发件人地址,需要与实际账户匹配。

  • to:收件人地址。

  • subject:邮件主题。

  • html:邮件 HTML 内容。此处我们可以引入在上一步所编写的 HTML 代码。

创建 responsiveEmail.EmailBuilder 的同时,需要指定 nodemailer 的邮件传输对象实例 transporter 和邮件信息对象 mailOptions。

responsiveEmail.EmailBuilder 还提供了许多便捷的方法,例如可以为邮件添加附件,可以为邮件添加收件人和 BCC 等等。

构建邮件

有两种方式可以构建邮件:

1. 直接构建

我们可以直接在项目中的单个 HTML 文件中编写邮件的完整 HTML 代码,然后通过以下代码创建邮件对象:

build() 方法从给定的 HTML 文件中提取出内联 CSS 样式,并将其应用到 HTML 中的 <head> 标签中,然后将其用作 HTML 邮件中的样式。当然,我们也可以在邮件 HTML 文件中定义尺寸、布局等 CSS 样式规则。

send() 方法直接将邮件发送给收件人。

2. 构建扩展

我们也可以使用 responsive-email 提供的扩展,例如在邮件中嵌入响应式图片、构建表格等等功能。

-- -------------------- ---- -------
----- ----- - --- ------------------------------
  ----- ---------------------
  --- ------------------------
  -------- -----------
--
  ----------
    ------------------- ------------
    ---------------- ----------
    ------ -----
    --------- ----------
  --
  ----------------------------
  -----------------------------
  --------
  --------
  • addHero():为邮件添加响应式头部。此处可以添加背景图片、背景颜色等。

  • addBody():为邮件添加内容体。我们可以使用 HTML 代码作为参数。

  • addFooter():为邮件添加邮件页脚。

发送邮件

1. 使用 SMTP 协议

我们可以使用 nodemailer 的 SMTP 传输协议,将邮件发送到邮件服务器或者直接发送给收件人。

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

-- ----
------------------------- -------- ----- ---- -
  -- ----- -
    --------------------- -----
  - ---- -
    ---------------------- -----
  -
---
  • host:SMTP 服务器地址。

  • port:SMTP 服务器端口号。

  • secure:使用 SSL 或 TLS 加密通道。

  • auth:电子邮件账号和密码。

2. 使用 API 发送与此同时,我们也可以使用不需要账户和密码的邮件 API,向 given邮箱 发送邮件。要想成功使用 API 发送邮件,我们需首先开通 API,并且调整反垃圾邮件策略。

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

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

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

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

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

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

总结

通过 responsive-email,我们可以轻松地构建响应式电子邮件,保证在不同设备和客户端上的呈现效果一致。在使用时,需要注意选择合适的方式和邮件 API,以提高使用效率,提高用户满意度。

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

纠错
反馈