【nodemailer】之 work with mustache
2015-10-03 23:26
621 查看
之前对nodemailer做了简要的研究,基本上是搞定了发邮件的问题。但很多情况下邮件的内容不是固定的,然后又需要有一个合适的样式,这就需要使用模板了。nodemailer有nodemailer-markdown和nodemailer-express-handlebars俩个插件,分别支持markdown语法和handlebars的语法,理论上handlebars也支持mustache模板,但是去看了看nodemailer-express-handlebars的用法,不是很喜欢。另外邮件采用markdown的风格不是很好,而且设不了邮件背景,不过适合发有代码片段的邮件。
为解决上面的问题,自己包装了一下mustache,取名mustache-promise,下面就展示一下如借助这个模块渲染mustache模板作为邮件内容.黄色别墅http://www.326dy.com/
项目结构
主文件代码
base.mst
footer.mst
如果你想在邮件中加背景图,其实很简单,参照之前那边文章中的逻辑就可以了,理论上讲加音乐也可以,我试试 :)--结果是显示出了audio标签,但显示不支持该类文件,失败!
mustache-promise的用法在文档里面有详细的介绍326影视http://www.326ys.com/
---记录,分享。转载请注明出处!
为解决上面的问题,自己包装了一下mustache,取名mustache-promise,下面就展示一下如借助这个模块渲染mustache模板作为邮件内容.黄色别墅http://www.326dy.com/
代码
项目结构主文件代码
//Created By zj on 2015/10/3 var nodemailer = require('nodemailer'); var smtpPool=require("nodemailer-smtp-pool"); var Mustache=require("mustache-promise"); var path=require("path"); var options={ "service":"QQ", "auth":{ "user":"xxxxx@qq.com", "pass":"xxx" }, "maxConnections":10, "secure":true }; var transporter = nodemailer.createTransport(smtpPool(options)); var mst_pro=new Mustache(); //设置模板文件所在目录,看上面的项目结构;设置文件扩展名为 .mst;load()从文件加载模板内容 mst_pro.dir(path.join(__dirname,"./views")).extName(".mst").load("base",{"by":"footer"}); var sendEmail=function(info){ mst_pro.ok().then(function(){ transporter.sendMail({ from:'xxxxx@qq.com', to: 'yyyyyy@163.com', subject: '吐槽', html:mst_pro.render(info)//以info中的数据渲染模板,输出的是html格式的内容 },function(err,res){ if(err){ console.log(err); }else{ console.log(res); } }); }); } var information={ "title":"A股小评", "comments":[{ "comment":"A股就像一个小娃娃一样,一跌就跌停,一涨就涨停,一点都不稳重!", "byWho":"zj" },{ "comment":"A股就是世界股市的一个奇葩,经常千股跌停千股涨停,不带这样的,经常做过山车会得心脏病的",326电影网http://www.326dy.com/ "byWho":"yyrdl" },{ "comment":"不知道新的韭菜有没有长好,准备去割韭菜了,哈哈", "byWho":"you guess:)" }] }; sendEmail(information);
base.mst
<h3 style="max-width:100px;margin-left:auto;margin-right:auto">{{title}}</h3> {{#comments}} <div style="background-color:skyblue;padding:10px;margin-top:10px;border-radius:3px;"> <p style="font-size: 14px">{{comment}}</p> {{>by}} </div> {{/comments}}
footer.mst
<div style="margin-left: 600px;font-style: italic;"> -----{{byWho}} </div>
效果截图性喜剧http://www.326ys.com/
如果你想在邮件中加背景图,其实很简单,参照之前那边文章中的逻辑就可以了,理论上讲加音乐也可以,我试试 :)--结果是显示出了audio标签,但显示不支持该类文件,失败!
mustache-promise的用法在文档里面有详细的介绍326影视http://www.326ys.com/
---记录,分享。转载请注明出处!
相关文章推荐
- [INS-41112] Specified network interface doesnt maintain connectivity across cluster nodes.
- hadoop 开始时间datanode一个错误 Problem connecting to server
- GDataXMLNode应用
- 【nodemailer】之 work with mustache
- Count Complete Tree Nodes
- [LeetCode] 116 - Populating Next Right Pointers in Each Node
- Mac下进行Node.js开发环境的配置
- node.js
- [转载]WebSocket+Node.js 通讯及在 iPhone中 实现
- LeetCode题解:Populating Next Right Pointers in Each Node
- Node.js第三方模块之htmlparser2
- 【nodemailer】 之邮件附件
- Node.js第三方库之request
- Swap Nodes in Pairs and Reverse Nodes in k-Group
- 【nodemailer】 初试
- Node.js第三方模块之download
- hadoop namenode无法启动,提示Failed on local exception的解决方法
- Node.js第三方模块之download-cli
- node起步
- Node express框架初试