Jenkins默认提供了一个邮件通知,能在构建失败、构建不稳定等状态后发送邮件。但是它本身有很多局限性,比如它的邮件通知无法提供详细的邮件内容、无法定义发送邮件的格式、无法定义灵活的邮件接收配置等。为解决这些问题,我们将使用 Email Extension 插件。该插件可以自定义邮件通知,如在发送邮件时自定义发送给谁以及具体内容等。本文主要对jenkins的邮件模板配置及通知进行介绍。
一、安装 Email Extension 插件
系统管理->插件管理,这里安装插件“Email Extension”用于设置邮件模板。
二、配置系统默认邮件参数
(一)内置的Jenkins 邮件服务器配置
1.系统管理-系统设置,先设置发件人的邮件,切记:一定要设置,且在系统管理员那个地方设置的email地址要和email配置的相同。
2. 系统管理-系统设置,再设置全局设置
设置完成后,可以勾选 “通过发送测试邮件配置” 测试此配置能否连通。
(二)Extended E-mail Notification 设置
1. 系统管理-系统设置,先设置全局:
详细参数说明如下:
Override Global Settings:如果不选,该插件将使用默认的E-mail Notification通知选项。反之,可以通过指定不同于的设置来进行覆盖。 Default Content Type:指定构建后发送邮件内容的类型,有Text和HTML两种。 Use List-ID Email Header:为所有的邮件设置一个List-ID的邮件信头。 Add 'Precedence: bulk' Email Header:设置优先级。 Default Recipients:自定义默认电子邮件收件人列表。 Reply To List:回复列表。 Emergency reroute:如果这个字段不为空,所有的电子邮件将被单独发送到该地址(或地址列表)。 Excluded Committers:防止邮件被邮件系统认为是垃圾邮件,邮件列表应该没有扩展的账户名(如:@domain.com),并且使用逗号分隔。 Default Subject:自定义邮件通知的默认主题名称。该选项能在邮件的主题字段中替换一些参数,这样就可以在构建中包含指定的输出信息。 Maximum Attachment Size:邮件最大附件大小。 Default Content:自定义邮件通知的默认内容主体。该选项能在邮件的内容中替换一些参数,这样就可以在构建中包含指定的输出信息。 Default Pre-send Script:默认发送前执行的脚本。 Enable Debug Mode:启用插件的调试模式。 nable Security:启用时,会禁用发送脚本的能力,直接进入Jenkins实例。如果用户试图访问Jenkins管理对象实例,将抛出一个安全异常。 Content Token Reference:邮件中可以使用的变量,所有的变量都是可选的。 |
三、配置邮件模板
1. 安装插件:
Config File Provider:提供文件的存储插件。
Pipeline Utility Steps:提供文件的读写的插件。
2. 添加模板文件
系统管理->Managed files->Add a new Config
选择“Extended Email Publisher Groovy Template”类型,然后添加邮件模板。
Default Subject:
构建通知:${BUILD_STATUS} - ${PROJECT_NAME} - Build # ${BUILD_NUMBER} ! |
Default Content(根据实际情况填写 SonarQube和代码覆盖率结果)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title> </head> <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> <tr> <td>以下为${PROJECT_NAME }项目构建信息</td> </tr> <tr> <td><br /> <b><font color="#0B610B">构建信息</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td> <ul> <li>项目名称:${PROJECT_NAME}</li> <li>构建编号:第${BUILD_NUMBER}次构建</li> <li>触发原因:${CAUSE}</li> <li>构建状态:${BUILD_STATUS}</li> <li>构建日志:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li> <li>构建Url:<a href="${BUILD_URL}">${BUILD_URL}</a></li> <li>工作目录:<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li> <li>项目Url:<a href="${PROJECT_URL}">${PROJECT_URL}</a></li> <li>SonarQube结果:http://sonar****** </li> <li>代码覆盖率结果:http://**/job/${PROJECT_NAME}/${BUILD_NUMBER}/jacoco/ </li> </ul> </td> </tr> <tr> <td><b><font color="#0B610B">历史变更记录:</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat=" %p"} </td> </tr> </table> </body> </html> |
body:邮件内容
subject:邮件主题
to:指定邮件接收者
attachLog:附加构建日志信息到附件中
recipientProviders:设置邮件接收者
四、测试发送模板邮件
Pipeline脚本内容,可以在jenkins中填入也可以写在项目脚本中进行调用。查看邮件,如下:
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理