36

I am new to Jenkins and I want to know how it is possible to display the HTML report (not the HTML code) generated after a successful build inside a mail body (not as an attachment).

I want to know the exact steps I should follow and what should be the content of my possible jelly template.

4

7 回答 7

59

深入了解插件文档。这里不需要 groovy。

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

${FILE,path="my.html"}

这会将my.html内容放在您的电子邮件正文中(文件的位置相对于工作的工作区。我使用它并且效果很好。

我希望这有帮助。

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

于 2014-02-27T13:16:58.623 回答
8

Jenkins 1.558 对我有用

${FILE,path="target/failsafe-reports/emailable-report.html"}
于 2014-09-19T07:02:35.763 回答
6

除了使用 读取文件外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'
于 2019-06-19T16:06:57.760 回答
3

它应该是这样的

导航

Configure -> Editable Email Notification

默认内容

${FILE,path="path/result.html"}
于 2018-02-22T09:27:24.697 回答
2

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

于 2015-11-17T22:14:10.930 回答
1

您可以使用Editable Email Notification post build action 将 html 内容作为邮件正文的一部分发送。

复制 html 内容Default Content并选择 Content Typeas HTML (text/html),如下图所示: 在此处输入图像描述

于 2017-02-08T16:28:07.167 回答
1

如果您使用自定义路径

我在尝试实现这个结果时遇到了麻烦,因为我的路径是动态变化的,我必须在变量中使用FILE变量。因此,当我尝试以下任何一项时

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

于 2021-01-06T22:01:28.810 回答