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

如何通过Jenkins发送包含换行符的文件完整内容?

解决Jenkins邮件无法完整发送带换行的文件内容问题

我之前碰到过一模一样的情况,核心问题是Jenkins默认的HTML邮件格式会忽略纯文本里的换行,或者${FILE}宏的渲染逻辑没保留原始格式。这里给你几个亲测有效的解决方案:

方案1:用HTML <pre>标签锁定原始格式

这是最快速的修复方法,<pre>标签会完整保留文本的换行、空格和分隔线格式。直接修改你的可编辑邮件通知内容为:

$DEFAULT_CONTENT
<pre>${FILE, path="/path/summary.txt"}</pre>

这样邮件里就能完整显示summary.txt里的所有内容,包括你设置的分隔线和每一行的统计数据。

方案2:检查文件路径与权限

有时候内容不显示不是格式问题,而是Jenkins读不到文件:

  • 确认/path/summary.txt是绝对路径,或者是相对于Jenkins任务工作空间的相对路径(如果用相对路径,要确保任务执行后这个文件确实在工作空间里)
  • 给Jenkins运行用户(通常是jenkins用户)添加文件读取权限,比如执行命令:chmod o+r /path/summary.txt

方案3:改用环境变量传递内容(适配已有的注入配置)

既然你已经配置了环境变量注入,可以调整文件格式让内容能通过变量传递:

  1. 把summary.txt改成键值对格式,用\n转义换行:
    TEST_SUMMARY=---| My First test |--- \nTotal Tests: 1 \nTotal Passes: 0 \nTotal Errors: 0 \nTotal Failures: 1 \nTotal Skipped tests: 0
    
  2. 在邮件内容里用<pre>${TEST_SUMMARY}</pre>(HTML模式),或者纯文本模式下直接写${TEST_SUMMARY}

额外提示:切换纯文本邮件模式

如果你不需要HTML格式的邮件,可以在Jenkins全局配置里(Manage Jenkins → Configure System → Extended E-mail Notification)把Default Content Type设置为Text/plain,这样直接用${FILE, path="/path/summary.txt"}就能自动保留换行。

内容的提问来源于stack exchange,提问作者Eswari Muthusamy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:23:30