在现今互联网快速发展的时代,电子邮件仍然是企业与用户推广、沟通的重要渠道之一。然而,现实告诉我们,在不同的终端设备、各种邮件客户端上,电子邮件的呈现样式千差万别。在这种情况下,如何保证邮件在各种设备和客户端上呈现一致,显得尤为重要。为了解决这一问题,一个名为 responsive-email 的 npm 包应运而生。
简介
responsive-email 是一款基于 node.js 的响应式电子邮件框架,可以根据实际显示设备自适应地调整邮件的布局和内容,从而保证邮件在各种设备和客户端上的显示效果一致,并且可以快速地构建和发送响应式电子邮件。
安装
为了使用 responsive-email,我们需要先安装 node.js。可以在 node.js 官网 上下载并安装适合自己操作系统的版本。
安装完 node.js 后,我们可以通过命令行(Terminal 或者命令提示符)输入以下命令安装 responsive-email:
npm install responsive-email --save
上述命令会将 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 代码,然后通过以下代码创建邮件对象:
const email = new responsiveEmail.EmailBuilder({ from: 'sender@example.com', to: 'recipient@example.com', subject: '欢迎来到我的网站!' }) .build() .send();
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