Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Jenkins中的Email ext插件在邮件正文中显示HTML页面_Jenkins_Jenkins Plugins_Email Attachments_Email Ext - Fatal编程技术网

使用Jenkins中的Email ext插件在邮件正文中显示HTML页面

使用Jenkins中的Email ext插件在邮件正文中显示HTML页面,jenkins,jenkins-plugins,email-attachments,email-ext,Jenkins,Jenkins Plugins,Email Attachments,Email Ext,我是Jenkins的新手,我想知道如何在邮件正文(不是附件)中显示成功构建后生成的HTML报告(不是HTML代码) 我想知道我应该遵循的确切步骤,以及我可能的果冻模板的内容。深入查看文档。这里不需要groovy 只需确保内容类型设置为HTML,并在正文中添加以下内容: ${FILE,path="my.html"} 这将把my.html内容放在你的电子邮件正文中(文件的位置是相对于工作区的。我使用它,它工作得很好 我希望这有帮助 编辑:请注意,您必须拥有Jenkins版本1.532.1(或更高版

我是Jenkins的新手,我想知道如何在邮件正文(不是附件)中显示成功构建后生成的HTML报告(不是HTML代码)

我想知道我应该遵循的确切步骤,以及我可能的果冻模板的内容。

深入查看文档。这里不需要groovy

只需确保内容类型设置为HTML,并在正文中添加以下内容:

${FILE,path="my.html"}
这将把
my.html
内容放在你的电子邮件正文中(文件的位置是相对于工作区的。我使用它,它工作得很好

我希望这有帮助


编辑:请注意,您必须拥有Jenkins版本1.532.1(或更高版本),才能通过email ext插件支持此功能。

Jenkins 1.558对我有效

${FILE,path="target/failsafe-reports/emailable-report.html"}

您只需将链接分配给环境变量,然后就可以使用该变量使用${ENV,var=ENV_variable}在电子邮件中打印。

您可以使用后期生成操作将html内容作为邮件正文的一部分发送

复制
默认内容中的html内容
,然后选择
内容类型
作为
html(文本/html)
,如下图所示:
应该是这样的:

Configure -> Editable Email Notification

导航

Configure -> Editable Email Notification
默认内容

${FILE,path="path/result.html"}

除了使用
body:${file,path=“index.html”}
读取文件外,还需要使用
mimeType:'text/html
全局或显式地为一次执行设置适当的内容类型

emailext subject: '$DEFAULT_SUBJECT',
                    body: '${FILE,path="index.html"}',
                    recipientProviders: [
                        [$class: 'CulpritsRecipientProvider'],
                        [$class: 'DevelopersRecipientProvider'],
                        [$class: 'RequesterRecipientProvider']
                    ], 
                    replyTo: '$DEFAULT_REPLYTO',
                    to: '$DEFAULT_RECIPIENTS',
                    mimeType: 'text/html'
如果使用自定义路径 我在尝试实现这个结果时遇到了麻烦,因为我的路径是动态变化的,我必须在
文件中使用一个变量

body: '${FILE,path=${report}}'
body: "${FILE,path=${report}}"
body: '''${FILE,path=${report}}'''
另一方面,由于Jenkins的限制,我无法用groovy读取文件

我的解决方法是像这样用shell直接读取html

html_body = sh(script: "cat ${report}", returnStdout: true).trim()
然后发送电子邮件

emailext replyTo: '$DEFAULT_REPLYTO',
  subject: "subject",
  to: EMAIL,
  mimeType: 'text/html',
  body: html_body

其中
${report}
是一个指向html文件的路径,如
/var/jenkins/workspace_318/report.html

我将内容设置为html,并按照前面提到的那样执行。它返回一个错误,邮件正文中说
错误:文件“/data/test.html”不存在
/data/test.html
是来自文件系统根目录的绝对路径(正斜杠)。只尝试
data/test.html
。假设我的html文件的绝对路径是
/data/jenkins/jobs/GAMETV/htmlreports/html\u Report/GAMETV.html
我应该把什么作为路径?作为初始测试,将整个路径
/data/jenkins/jobs/GAMETV/htmlreports/html\u Report/GAMETV.html
放在一起,看看它是否有效。Update i使它起作用了吗将“可编辑电子邮件通知”>“内容类型”值转换为HTML(text/HTML),将“默认内容”字段值转换为“${FILE,path=“target/site/serenity/index.HTML”}。未对触发器字段进行任何更改。是否可以添加显示在何处添加此值的屏幕截图?我收到了电子邮件,但未显示css。我正在使用范围报告的dashboard.html