Jenkins Plot插件技术咨询:如何在邮件中发送生成的图表
解决Jenkins Plot图表嵌入Email Extension邮件的方案
Hey Chandan, 刚好我之前处理过类似需求,这就给你一步步拆解怎么把Plot生成的最近5次构建图表塞进邮件里:
核心思路
Plot插件会在每个构建下生成可访问的图表URL,我们只需要把这个URL以图片形式嵌入到HTML格式的邮件里就行——如果担心收件人访问不了Jenkins内网,还可以把图表下载下来作为嵌入式附件发送。
方法一:直接引用Jenkins图表URL(简单快捷)
先开启HTML邮件支持
进入Jenkins的「系统管理」→「系统配置」,找到「Extended E-mail Notification」模块,把「Default Content Type」改成text/html,这样邮件就能解析HTML标签了。获取你的Plot图表专属URL
Plot插件生成的图表URL格式是:${BUILD_URL}plot/png?plotname=你的图表名称&width=800&height=600- 把「你的图表名称」替换成你在Plot插件配置里给图表起的名字(注意大小写要完全匹配)
width和height可以根据需求调整,比如改成600x400更适配邮件
在邮件内容里插入图片
打开你的项目配置,找到「Editable Email Notification」的「Content」部分,用HTML的<img>标签插入图表:<h3>最近5次构建趋势图表</h3> <img src="${BUILD_URL}plot/png?plotname=MyBuildTrend&width=800&height=600" alt="最近5次构建趋势图" style="max-width:100%;">这里的
style="max-width:100%;"是为了让图表在手机邮件客户端里自适应宽度。
方法二:嵌入图表为邮件附件(无需访问Jenkins内网)
如果你的收件人没法访问Jenkins所在的网络,直接引用URL会导致图片加载失败,这时候可以把图表下载到构建工作区,再作为嵌入式附件插入邮件:
添加构建步骤下载图表
在项目的构建步骤里,添加一个「执行shell」(Windows项目选「执行Windows批处理命令」),用curl下载图表:# Linux/macOS用这个 curl -o build_trend.png "${BUILD_URL}plot/png?plotname=MyBuildTrend&width=800&height=600":: Windows用这个(需要提前安装curl或者用PowerShell) curl -o build_trend.png "%BUILD_URL%plot/png?plotname=MyBuildTrend&width=800&height=600"配置邮件附件与嵌入式引用
- 在「Editable Email Notification」的「Attachments」里填写
build_trend.png - 在邮件内容里用CID引用这个附件,这样图片会直接嵌入邮件正文:
<h3>最近5次构建趋势图表</h3> <img src="cid:build_trend.png" alt="最近5次构建趋势图" style="max-width:100%;">
- 在「Editable Email Notification」的「Attachments」里填写
注意事项
- 如果你用的是Jenkins流水线(Pipeline),记得把
${BUILD_URL}换成env.BUILD_URL - 确认Plot插件的「Number of builds to include」确实设为了5,这样生成的图表才会只显示最近5次构建的数据
- 测试的时候可以手动触发一次构建,检查邮件里的图表是否正常显示,如果加载失败,先确认URL在浏览器里能打开
内容的提问来源于stack exchange,提问作者Chandan Sinha
相关产品推荐
相关产品推荐

