邮件发送html, 分别用p,code,xmp三个标签嵌入代码段后的样式比较
邮件发送html, 分别用p,code,xmp三个标签嵌入代码段后的样式比较
- 代码
- 测试代码
- 效果
- 展示代码块整体效果
因为在工作中经常使用邮件来进行一些异常告警和通知, 所以会在邮件中直接附带日志, 或者是代码等信息, 但是如果直接发送html, 样式会丑的不行完全影响阅读. 所以寻求一个好的标签将这些包裹起来. 类似于md的```符号,直接将代码段展示出来. 网上提到的基本就是这三个标签, <p>
, <code>
, <xmp>
- 我这里已经初步的将Map传入的参数, 在工具类中封装处理成html的table展示.
- 因为我也不是前端开发人员, 具体这三个标签区别在哪, 大家自己百度, 这里只是直接用这三个标签来试试发送邮件的效果
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三个标签嵌入代码段后的样式比较相关推荐
- 邮件发送 --- 纯Java、JavaWeb、Spring三种实现方式
邮件发送学习笔记~ 一.邮件发送介绍 要在网络上实现邮件功能,必须要有专门的邮件服务器! 这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中! ...
- TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)
在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...
- 手机邮箱看不到已发送邮件_TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」) - blog_zss小帅-博客猿...
在 PHP 应用开发中,往往需要验证用户邮箱.发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持. 如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮 ...
- Java实现QQ邮件发送客户端程序设计
目录 一.前言:QQ邮件发送程序 二.封装SMTP操作 三.实现多线程接收 四.QQ邮件客户端界面设计 1.连接按钮 2.发送按钮 五.QQ邮件发送效果演示 六.总结 一.前言:QQ邮件发送程序 !! ...
- 邮件发送类,支持HTML格式,支持优先级设置
www.chinacs.net 2002-5-9 中文C#技术站 邮件发送类,支持HTML格式,支持优先级设置.通过SOCKET类实现的 using System; using System.Te ...
- Jmail的邮件发送
下载注册dll文件 1. dll文件下载 2.到jmail.dll所在目录,运行cmd regsvr32 目录/jmail.dll 3.c#程序中,行首引用代码 using jmail C#示例代码 ...
- 利用System.Net.Mail和多线程实现邮件发送
对于邮件发送,一般来说,程序会响应超过1秒,这样对于用户体验来说,让用户等待的时间过长,而且发送的邮件越多时间就越长,所以这里我利用了线程的来处理邮件发送这种耗时的工作,废话不多说,直接上代码 pri ...
- magento邮件使用php,Magento订单成功无邮件发送
Magento订单成功之后,或是有新的订单在MAGENTO1.9.1版本中不发送相应的邮件及抄送邮件至管理员邮箱 这个问题是今天我们的一个客户从1.7升级到1.9.1.1时发现的,后来听技术人员说,此 ...
- php邮件发送tp,Thinkphp5 邮件发送Thinkphp发送邮件
在项目的开发中 用户修改密码,需要发送验证码到用户邮箱, 在common.php公共文件中加入以下代码: /** * 系统邮件发送函数 * @param string $tomail 接收邮件者邮箱 ...
最新文章
- LeetCode刷题记录2——217. Contains Duplicate(easy)
- 基础数据类型之集合和深浅copy,还有一些数据类型补充
- 《THE LEAN STARTUP》 《精益创业》
- 信息学奥赛一本通(1018:其他数据类型存储空间大小)
- Spark Shuffle系列-----1. Spark Shuffle与任务调度之间的关系
- TF-IDF 提取文本关键词
- Android 应用开发---ViewPager---4自主实现滑动指示条
- adb小天才_ADB工具包2020年最新版下载-支持解锁新机BL调试ROOT等各种操作
- 2011年八大赚钱爆发点
- 通过自定义View了解MeasureSpecMode
- java中怎么画弧线加粗,CAD中怎么把一段线、曲线或圆弧加粗
- click与onclick的区别
- utility/u8g.h: No such file or directory -- 0.96寸 不能显示中文 错误
- 移动端 web 开发的设计稿与工作流
- css-3d旋转(三维立体效果)
- 简单的玻璃材质效果——UnityShader学习笔记
- 挑战微软 + GitHub!谷歌联手 Replit,升级 AI 编程“神器”:曾拒绝微软 10 亿美元的收购...
- 沐神点赞!同济子豪兄精读AI经典论文,包括图像分类、目标检测、生成对抗网络、轻量化卷积神经网络等领域...
- html5指南针源码,全套指南针软件源码
- html5创建三次贝塞尔曲线,HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线