You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Plot插件技术咨询:如何在邮件中发送生成的图表

解决Jenkins Plot图表嵌入Email Extension邮件的方案

Hey Chandan, 刚好我之前处理过类似需求,这就给你一步步拆解怎么把Plot生成的最近5次构建图表塞进邮件里:

核心思路

Plot插件会在每个构建下生成可访问的图表URL,我们只需要把这个URL以图片形式嵌入到HTML格式的邮件里就行——如果担心收件人访问不了Jenkins内网,还可以把图表下载下来作为嵌入式附件发送。

方法一:直接引用Jenkins图表URL(简单快捷)

  1. 先开启HTML邮件支持
    进入Jenkins的「系统管理」→「系统配置」,找到「Extended E-mail Notification」模块,把「Default Content Type」改成 text/html,这样邮件就能解析HTML标签了。

  2. 获取你的Plot图表专属URL
    Plot插件生成的图表URL格式是:

    ${BUILD_URL}plot/png?plotname=你的图表名称&width=800&height=600
    
    • 把「你的图表名称」替换成你在Plot插件配置里给图表起的名字(注意大小写要完全匹配)
    • width和height可以根据需求调整,比如改成600x400更适配邮件
  3. 在邮件内容里插入图片
    打开你的项目配置,找到「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会导致图片加载失败,这时候可以把图表下载到构建工作区,再作为嵌入式附件插入邮件:

  1. 添加构建步骤下载图表
    在项目的构建步骤里,添加一个「执行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"
    
  2. 配置邮件附件与嵌入式引用

    • 在「Editable Email Notification」的「Attachments」里填写 build_trend.png
    • 在邮件内容里用CID引用这个附件,这样图片会直接嵌入邮件正文:
      <h3>最近5次构建趋势图表</h3>
      <img src="cid:build_trend.png" alt="最近5次构建趋势图" style="max-width:100%;">
      

注意事项

  • 如果你用的是Jenkins流水线(Pipeline),记得把${BUILD_URL}换成env.BUILD_URL
  • 确认Plot插件的「Number of builds to include」确实设为了5,这样生成的图表才会只显示最近5次构建的数据
  • 测试的时候可以手动触发一次构建,检查邮件里的图表是否正常显示,如果加载失败,先确认URL在浏览器里能打开

内容的提问来源于stack exchange,提问作者Chandan Sinha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:38:32