前言
随着互联网的发展,电子邮件成为了一种不可或缺的通信方式,而且越来越多的网站也需要通过邮件来与用户进行交互。在邮件的发送及渲染过程中,常常需要处理 HTML 页面及模板引擎,这也就引发了前端工程师对邮件渲染的考虑。
基于此,本文介绍了一种利用 npm 包 node-mjml-mustache-nodemailer
来实现邮件渲染,模板引擎以及邮件发送的方法。
什么是 npm?
npm 是 node.js 中的包管理工具,提供了一个丰富的代码库和强大的搜索和安装功能。在本文中,我们将使用 npm 包来进行项目开发。
什么是 node-mjml-mustache-nodemailer?
node-mjml-mustache-nodemailer
是一组功能强大的 npm 包,结合了两个著名的 node.js 包:nodemailer
和 mjml/mjml
。nodemailer
是用于发送电子邮件的 node.js 库,可以通过 SMTP 或其他传输协议发送邮件。mjml/mjml
是一个基于 HTML 的邮件模板语言,可以通过简单的 HTML 标记来快速构建响应式邮件。
本文将介绍如何使用 node.js + mjml + mustache + nodemailer 实现创建 HTML 邮件,并将其发送到指定的收件人。
安装
在进行项目开发之前,首先需要安装必要的依赖库。通过 npm 可以很方便的完成依赖的安装。
npm install node-mjml-mustache-nodemailer --save
使用
安装完成后,我们需要在代码中引入相关库,如下所示:
const mjml2html = require('mjml'); const Mustache = require('mustache'); const nodemailer = require('nodemailer');
生成 HTML 邮件
HTML 邮件的创建很类似于普通的 HTML 页面。 mjml 提供了丰富的组件来让你构建你的邮件。
页面模板定义需要执行 mjml2html 函数,mjml模板编译成 html 格式,例如:
-- -------------------- ---- ------- ----- ------------ - ------- --------- ----------------- -- -- ------------------ ---------- ---------- - ----------------- -------- - ----------- ---------- --------- ------------ ----------- --------- ----------------------------------------------------------------------- ---------- ----------- -- ----------- ------------------------ -- -------- ---------------- -------------------------- -- -- ------------------ ----------- ------------------------ -- -------- ------------------- ------------------- -------- ------------------- ----- ---- -- ---- - ------ --- ----- --- --- ------- --- --------- --- ---- -- --------- -- -------- ---- ----- ---------- -- --- ---- -- ----------- ----------- --- -------- --- --- ------ -- ---- ---- --- ---- --- --------- -- ------- ------ --- ---------------------- -------- ---------------------- --- --- ---- --------- ------------------ ---------- -------------------------- ------------- ----------------------- -- ---------------- ------------ ------------- ---------- -------- ----- ----------- - ----------------------- ----- ---- - ----------------
上述代码中的 {{name}} 和 {{url}} 会被 Mustache 引擎动态替换成传入的值。
发送邮件
我们使用 Nodemailer 进行邮件的发送操作,代码如下:
-- -------------------- ---- ------- -- ------ -------- ----------- ------ ----- ---- ---------- --- ----------- - ---------------------------- -------- -------- ----- - ----- ------------- -- ----- --- ----- -------------- -- ----- -- - --- -- ------ --- ----------- - - ----- ----------------- -- ------ ------- --- --------------- -- ---- -- --------- -------- -------- ---------- -- ------- ---- ----- ---- -- ---- ---- -- -- ---- ---- ---- ------- --------- ------ --------------------------------- ------- ----- -- - -- ------- - ------ ------------------- - -------------------- -- ----- ---- --------------- --------------- ---
在实际发送中,需要正确填写 user
和 pass
的值,同时设置正确的 from
和 to
地址即可。
示例代码
-- -------------------- ---- ------- ----- --------- - ---------------- ----- -------- - -------------------- ----- ---------- - ---------------------- ----- -------- ------------------------ ---- - --- - ----- ------------ - ------- --------- ----------------- -- -- ------------------ ---------- ---------- - ----------------- -------- - ----------- ---------- --------- ------------ ----------- --------- ----------------------------------------------------------------------- ---------- ----------- -- ----------- ------------------------ -- -------- ---------------- -------------------------- -- -- ------------------ ----------- ------------------------ -- -------- ------------------- ------------------- -------- ------------------- ----- ---- -- ---- - ------ --- ----- --- --- ------- --- --------- --- ---- -- --------- -- -------- ---- ----- ---------- -- --- ---- -- ----------- ----------- --- -------- --- --- ------ -- ---- ---- --- ---- --- --------- -- ------- ------ --- ---------------------- -------- ---------------------- --- --- ---- --------- ------------------ ---------- -------------------------- ------------- ----------------------- -- ---------------- ------------ ------------- ---------- -------- ----- ----------- - ----------------------- ----- ---- - ---------------- ----- ----------- - ---------------------------- -------- -------- ----- - ----- ------------- -- ----- --- ----- -------------- -- ----- -- - --- --- ----------- - - ----- ----------------- -- ------ ------- --- --------------- -- ---- -- --------- -------- -------- ---------- -- ------- ---- ----- --------------------- - ----- --- -- -- --- --------------- -- ------- ------- --------- -- ----- ------ - ----- ---------------------------------- ------------------ --- ---------- ---- -- --- ---------- ---- ---------------- - ----- ------- - -------------------- - - ------------------------- ----- --------------------------
每次执行此函数,将会向指定的电子邮件地址发送 HTML 邮件。
总结
在本文中,我们介绍了 npm 包 node-mjml-mustache-nodemailer
的使用方法。我们演示了如何使用 mjml 和 Mustache 引擎来生成模板,同时使用 nodemailer 库发送电子邮件。这个过程非常简单,使用 node-mjml-mustache-nodemailer,我们的邮件模板可以变得非常简洁和易于管理。当然,我们还可以利用 mjml 定制我们自己的 HTML 邮件模板,使邮件更加美观。
希望本教程可以对前端工程师们有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005753b81e8991b448ea48f