邮件发送html, 分别用p,code,xmp三个标签嵌入代码段后的样式比较

  • 代码
    • 测试代码
  • 效果
    • 展示代码块整体效果

因为在工作中经常使用邮件来进行一些异常告警和通知, 所以会在邮件中直接附带日志, 或者是代码等信息, 但是如果直接发送html, 样式会丑的不行完全影响阅读. 所以寻求一个好的标签将这些包裹起来. 类似于md的```符号,直接将代码段展示出来. 网上提到的基本就是这三个标签, <p>, <code>, <xmp>

  1. 我这里已经初步的将Map传入的参数, 在工具类中封装处理成html的table展示.
  2. 因为我也不是前端开发人员, 具体这三个标签区别在哪, 大家自己百度, 这里只是直接用这三个标签来试试发送邮件的效果

2020年12月16日 补充:
还有一个pre标签. 它也和xmp标签类似, 能够保持格式输出代码(认识\n并换行), 但是区别是如果是html代码, xmp是展示代码, pre则是展示浏览器页面效果

代码

测试代码

下面分别针对 html ,日志, 代码, json 等

@Testpublic void fun01(){//nginx 404 htmlString body= "<html>\n" +"<head><title>404 Not Found</title></head>\n" +"<body>\n" +"<center><h1>404 Not Found</h1></center>\n" +"<hr><center>nginx/1.19.4</center>\n" +"</body>\n" +"</html>";Map<String, String> param = new LinkedHashMap<>(16);param.put("html xmp", "<xmp>"+body+"</xmp>");param.put("html p", "<p>"+body+"</p>");param.put("html code", "<code>"+body+"</code>");//格式化后的json, 有换行String formatJson = "{\n" +"    \"sites\": [\n" +"    { \"name\":\"菜鸟教程\" , \"url\":\"www.runoob.com\" }, \n" +"    { \"name\":\"google\" , \"url\":\"www.google.com\" }, \n" +"    { \"name\":\"微博\" , \"url\":\"www.weibo.com\" }\n" +"    ]\n" +"}";param.put("formatJson xmp", "<xmp>"+formatJson+"</xmp>");param.put("formatJson p", "<p>"+formatJson+"</p>");param.put("formatJson code", "<code>"+formatJson+"</code>");//精简jsonString json = "{\"sites\":[{\"name\":\"菜鸟教程\",\"url\":\"www.runoob.com\"},{\"name\":\"google\",\"url\":\"www.google.com\"},{\"name\":\"微博\",\"url\":\"www.weibo.com\"}]}";param.put("json xmp", "<xmp>"+json+"</xmp>");param.put("json p", "<p>"+json+"</p>");param.put("json code", "<code>"+json+"</code>");//console log 控制台日志String log ="21:17:42.137 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]\n" +"21:17:42.173 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)]";param.put("log xmp", "<xmp>"+log+"</xmp>");param.put("log p", "<p>"+log+"</p>");param.put("log code", "<code>"+log+"</code>");//java代码String java = "  public static void main(String[] args) {\n" +"    System.out.println(\"args = \" + args);\n" +"  }";param.put("java xmp", "<xmp>"+java+"</xmp>");param.put("java p", "<p>"+java+"</p>");param.put("java code", "<code>"+java+"</code>");//这是发邮件的工具类, 同时将param参数包装成html的tableMailSendUtil.notifyNormalHtmlTable("test测试",  Lists.newArrayList("zgd@123.com"),param );}

效果

整个邮件被拉宽了, 没有截全.

展示代码块整体效果

xmp > code > p

补充: 展示代码效果: xmp> pre > code > p

  • html: code和p会展示浏览器页面效果, xmp会展示源代码
  • json格式化: xmp会展示换行效果(对\n有效果), code有小字体代码段效果,无换行(对\n无效果,隐藏\n), p无小字体效果,无换行.
  • 普通json: xmp和code一致. p无小字体效果
  • log: xmp会换行, code有代码段小字体效果, 无换行. p 无效果
  • java: xmp会换行, code不换行, p无效果

邮件发送html, 分别用p,code,xmp三个标签嵌入代码段后的样式比较相关推荐

  1. 邮件发送 --- 纯Java、JavaWeb、Spring三种实现方式

    邮件发送学习笔记~ 一.邮件发送介绍 要在网络上实现邮件功能,必须要有专门的邮件服务器! 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中! ...

  2. TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)

    在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...

  3. 手机邮箱看不到已发送邮件_TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」) - blog_zss小帅-博客猿...

    在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...

  4. Java实现QQ邮件发送客户端程序设计

    目录 一.前言:QQ邮件发送程序 二.封装SMTP操作 三.实现多线程接收 四.QQ邮件客户端界面设计 1.连接按钮 2.发送按钮 五.QQ邮件发送效果演示 六.总结 一.前言:QQ邮件发送程序 !! ...

  5. 邮件发送类,支持HTML格式,支持优先级设置

    www.chinacs.net  2002-5-9  中文C#技术站 邮件发送类,支持HTML格式,支持优先级设置.通过SOCKET类实现的 using System; using System.Te ...

  6. Jmail的邮件发送

    下载注册dll文件 1. dll文件下载 2.到jmail.dll所在目录,运行cmd regsvr32 目录/jmail.dll 3.c#程序中,行首引用代码 using jmail C#示例代码 ...

  7. 利用System.Net.Mail和多线程实现邮件发送

    对于邮件发送,一般来说,程序会响应超过1秒,这样对于用户体验来说,让用户等待的时间过长,而且发送的邮件越多时间就越长,所以这里我利用了线程的来处理邮件发送这种耗时的工作,废话不多说,直接上代码 pri ...

  8. magento邮件使用php,Magento订单成功无邮件发送

    Magento订单成功之后,或是有新的订单在MAGENTO1.9.1版本中不发送相应的邮件及抄送邮件至管理员邮箱 这个问题是今天我们的一个客户从1.7升级到1.9.1.1时发现的,后来听技术人员说,此 ...

  9. php邮件发送tp,Thinkphp5 邮件发送Thinkphp发送邮件

    在项目的开发中 用户修改密码,需要发送验证码到用户邮箱, 在common.php公共文件中加入以下代码: /** * 系统邮件发送函数 * @param string $tomail 接收邮件者邮箱 ...

最新文章

  1. LeetCode刷题记录2——217. Contains Duplicate(easy)
  2. 基础数据类型之集合和深浅copy,还有一些数据类型补充
  3. 《THE LEAN STARTUP》 《精益创业》
  4. 信息学奥赛一本通(1018:其他数据类型存储空间大小)
  5. Spark Shuffle系列-----1. Spark Shuffle与任务调度之间的关系
  6. TF-IDF 提取文本关键词
  7. Android 应用开发---ViewPager---4自主实现滑动指示条
  8. adb小天才_ADB工具包2020年最新版下载-支持解锁新机BL调试ROOT等各种操作
  9. 2011年八大赚钱爆发点
  10. 通过自定义View了解MeasureSpecMode
  11. java中怎么画弧线加粗,CAD中怎么把一段线、曲线或圆弧加粗
  12. click与onclick的区别
  13. utility/u8g.h: No such file or directory -- 0.96寸 不能显示中文 错误
  14. 移动端 web 开发的设计稿与工作流
  15. css-3d旋转(三维立体效果)
  16. 简单的玻璃材质效果——UnityShader学习笔记
  17. 挑战微软 + GitHub!谷歌联手 Replit,升级 AI 编程“神器”:曾拒绝微软 10 亿美元的收购...
  18. 沐神点赞!同济子豪兄精读AI经典论文,包括图像分类、目标检测、生成对抗网络、轻量化卷积神经网络等领域...
  19. html5指南针源码,全套指南针软件源码
  20. html5创建三次贝塞尔曲线,HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线

热门文章

  1. 有时用weblogic用户启动weblogic时会报错的原因以及解决办法
  2. kicad最小布线宽度默认是多少_CABLExpress发布了最新的光纤布线最佳实践指南
  3. Unity 导入人形骨骼模型及动画
  4. Three.js实现的网站页面金字塔模型显示
  5. 扬帆优配|2600亿汽车巨头闪崩近9%,汽车股惊现“冰火两重天”!
  6. 图像处理--医疗图片的处理
  7. 蓝桥杯单片机第11届国赛程序题参考答案
  8. 平安科技面试(成都应届)
  9. %在C语言计算中的用法
  10. The_Last_Geass