根据业务场景,需要发送不同内容的邮件,如何提供基础服务接口去发送邮件,方便后期扩展和维护,荣哥给我提出了一个想法是,抽象邮件模版内容,不在关心调用方的邮件内容,只需要去实现发送邮件功能即可。

准备工作

目前有很多工具可以在线使markdown转html格式
,很方便,开源的东西也很多,我也尝试了几个,markdownpapers-core markdownj-core pegdown,前两个测试了一下,转化 html后总是有一点点小问题,最后一个转化OK。

<dependency><groupId>org.pegdown</groupId><artifactId>pegdown</artifactId><version>1.6.0</version>
</dependency>

pegdown开源代码详见: https://github.com/sirthias/pegdown/

测试demo

package com.zhj.test.markdown;import org.pegdown.PegDownProcessor;import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.nio.CharBuffer;/*** markdown文件转html格式* 可以使用:Pegdown* @author zhengjie**/public class MarkdownToHtml {public static void main(String[] args) throws IOException {System.out.println(get());}public static String get() throws IOException{//java.io.InputStream in = this.getClass().getResourceAsStream("markdown.md");String html = null;FileReader r = new FileReader("markdown.md");char[] cbuf = new char[1024];while( r.read(cbuf) != -1){html = new String(cbuf);}PegDownProcessor pdp = new PegDownProcessor(Integer.MAX_VALUE);html = pdp.markdownToHtml(html);return html;}
}

markdown.md 代码:


### 服务端测试结果UserSystem_BasicDataService_TestCase_20160415110013 测试完成,共7个测试用例,成功6个,失败1个。| 用例名称 | HTTP请求描述 | URL | 断言类型 | 错误描述 |
| -----|:----:|:----:|:----:|:----:|
| SuiFang_UserSystem_Hospital 1-1   | HttpRequest_getHospital4.2   | [链接](http://dict.xingshulin.com/cdsw/default/data/hospital/1/%e5%8c%97%e4%ba%ac%e4%ba%ac%e5%8c%97/0/100)  | jp@gc - JSON Content Assertion  |  ERROR!!! key:id,expectedValue:294,actualValue:283 ERROR!!! key:name,expectedValue:北京京北医院,actualValue:北京市海淀区北下关医院   |[详细日志](http://www.baidu.com)

发送邮件代码实现省略。。

发送邮件测试结果:

经过样式调试,终于可以看到可以接受的邮件。
注意,此处需加载markdown的样式,参考:https://github.com/huizhong/cnblogs-markdown-css/blob/master/cnblogs-markdown.css

最近看到了一个新的解决方案,提供邮件模版,然后填充不同邮件内容的实现。

总结

解决问题,要发散思维,从不同角度去考虑。不同的逻辑和思想高度,产生不同的处理结果。

markdown转html格式相关推荐

  1. 如何利用 notedown 完成 ipynb与markdown之间的格式转换?

    简 介: 使用Convert IPython Notebooks to markdown (and back)中的downnote可以方便将IPYNB与Markdown格式进行转换.本文对于noted ...

  2. Atom markdown .md 编写格式技巧

    Atom markdown .md 编写格式技巧 使用Atom预览markdown 1.打开任意.md文件(markdown源文件) 菜单栏File->Open file...(ctrl+o)打 ...

  3. Markdown常用基本格式

    Markdown常用基本格式 标题 井号#加空格加题目,enter键成为标题.井号个数表示题目等级: 这是一个一级标题 这是一个二级标题 这是一个三级标题 略略略略 略略略略略 最多到六级标题 文本 ...

  4. java markdown转word_Markdown 格式如何转换成 Word?

    1. 问题描述 用过markdown的朋友都知道,markdown语法简洁,写作效率极高,非常适合网络博客.邮件.笔记等非正式文档的写作.但对于格式复杂的正式报告.论文.项目计划书等正式文档是不适合的 ...

  5. Markdown 基本语法格式

    文末附有高级排版样式,超多有趣 emoji ,让你的文章更易读 标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 使用最多6个 # 号实现层级标题 换行 空格1 空格2 空格1 空格3 ...

  6. Python markdown转epub (格式间转换)

    import pypandocdef readme():"""转化文件的格式.convert(source, to, format=None, extra_args=() ...

  7. 【教程】【技术向】将博客批量导出为markdown或html格式

    前言 最近突然想要备份一下自己的blog 但是上百篇博客,手动导出肯定要累死 所以LZ就上网搜索,自己捣鼓了一下 于是就有了这篇教程 注:本文的读者定向是小白,各位dalao如果觉得步骤太罗嗦可以跳过 ...

  8. swagger导出excel文档_将Swagger2文档导出为HTML或markdown等格式离线阅读

    网上有很多<使用swagger2构建API文档>的文章,该文档是一个在线文档,需要使用HTTP访问.但是在我们日常使用swagger接口文档的时候,有的时候需要接口文档离线访问,如将文档导 ...

  9. markdown格式_第1篇:如何将Markdown笔记转入ANKI复习? | 学习骇客

    用技术和心理学改善学习 第128次 摘要:将日常使用的Markdown笔记软件与复习工具ANKI结合起来,于ANKI用户而言可以简化学习过程,于一般的学习者而言可以解决笔记"记而不学&quo ...

  10. markdown引入代码_将Swagger2文档导出为HTML或markdown等格式离线阅读

    网上有很多<使用swagger2构建API文档>的文章,该文档是一个在线文档,需要使用HTTP访问.但是在我们日常使用swagger接口文档的时候,有的时候需要接口文档离线访问,如将文档导 ...

最新文章

  1. 我的世界最新版本生存服务器ip,我的世界服务器古风小阁IP|纯净生存(1.15.2)
  2. JSON数据序列化与反序列化实战
  3. Android layout布局属性、标签属性总结大全
  4. Linux常用性能分析工具汇总
  5. SEO切忌犯的9种作弊手段
  6. SVN Attempted to lock an already-locked dir异常解决方法
  7. java中说明书/开发文档如何编写?
  8. Macbook鼠标调节外接显示器亮度 - Shades for Mac(屏幕亮度调节软件) V1.2 苹果电脑版
  9. Error response from daemon: conflict: unable to delete feb5d9fea6a5 (must be forced) - image is bein
  10. oracle发生20001,Oracle10g重建EM 报ORA-20001: SYSMAN already exists
  11. 巾帼亮相申城,群英共筑梦想
  12. 疫情背后,零售变革正在酝酿,手机行业或迎来线下大洗牌
  13. 新冠肺炎早期的10个症状 新冠肺炎1-14天症状特征
  14. English--五大基本句型基本概念
  15. 计算机夏令营英语自我介绍,保研夏令营英文自我介绍3篇
  16. 多个DataFream追加写入同一个sheet代码示例
  17. 在打破传统保险业的“玻璃屋顶” 之前,AI+保险还需跨过几道坎
  18. Java面试宝典——数据库部分(六)
  19. 3DS文件在OpenGL的读入和显示
  20. 实验三 Android生命周期

热门文章

  1. DNS域名解析中A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR各项记录的作用
  2. PHP file_get_contents函数详解
  3. Android字体加粗
  4. 用微型计算机原理做流水灯,微机原理流水灯设计.doc
  5. 手把手教你做小米商城-商品展示页面
  6. 团队管理8--管理工作框架及技能图谱
  7. 印度黑客号称世界第一,结果第二天被中国黑客干掉了
  8. MF,PMF算法比较
  9. {大学快毕业的程序员,现在开始写博客}
  10. 从雷达拼图中提取回波数据