专栏首页搜狗测试Jenkins使用之邮件模板配置

Jenkins使用之邮件模板配置

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="&nbsp;&nbsp;&nbsp;&nbsp;%p"}
            </td>
        </tr>
    </table>  
</body>  
</html>
  • body:邮件内容
  • subject:邮件主题
  • to:指定邮件接收者
  • attachLog:附加构建日志信息到附件中
  • recipientProviders:设置邮件接收者

四、测试发送模板邮件

Pipeline脚本内容,可以在jenkins中填入也可以写在项目脚本中进行调用。查看邮件,如下:

本文分享自微信公众号 - 搜狗测试(SogouQA),作者:小小

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 代码覆盖率--gcov/lcov/gcovr

    统计C/C++代码覆盖率的工具很多,比如OpenCppCoverage可以与VS工具配合,获取并展示代码覆盖率简单直观,但是在Linux、Mac等系统该如何统计...

    用户5521279
  • 框架

    太多了,没必要举太多例子了,现在,我们大概认识到,整个软件界基本上都是各种框架堆起来的。一个程序从底层到业务需求,方方面面规模庞大,没哪个团队说有精力有必要去重...

    用户5521279
  • Android应用签名、反编译与防止二次签名

    我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行。签名就代表着自己的身份即keystore。小编所在项目,遇到应用被...

    用户5521279
  • 10 分钟实现 Spring Boot 发生邮件功能

    SMTP全称为Simple Mail Transfer Protocol(简单邮件传输协议),它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中...

    芋道源码
  • SpringBoot 发送邮件和附件(实用版)

    转载自简书 SpringBoot 发送邮件和附件(实用版)作者:yizhiwazi

    Java团长
  • 10 分钟实现 Java 发送邮件功能

    Spring Boot集成邮件服务竟如此简单,快速掌握邮件业务类的核心逻辑和企业邮件的日常服务。

    逆锋起笔
  • 生成测试报告就万事大吉了吗?NO,升职加薪就差这一步啦!- 04(非常详细,非常实用)

    上一篇生成测试报告,小伙伴们和童鞋们就又问道,测试报告已经生成了,怎么发送给相关的负责人了?小伙伴们和童鞋们不要着急,听宏哥慢慢给你道来,心急吃不了热豆腐哈。...

    北京-宏哥
  • 发送邮件那些事

    世界的第一封电子邮件 1969年10月世界上的第一封电子邮件是由计算机科学家Leonard K.教授发给他的同事的一条简短消息。 据《互联网周刊》报道世界上的第...

    纯洁的微笑
  • 如何使用 Spring Boot 开发邮件系统?

    互联网发展到现在,邮件服务已经成为互联网企业中必备功能之一,应用场景非常广泛,比较常见的有:用户注册、忘记密码、监控提醒、企业营销等。

    纯洁的微笑
  • 邮件群发时哪些因素会影响送达率

    作为平时不怎么使用邮箱发邮件的朋友们,可能很少会考虑邮件为什么会发不出去这个问题,其实只有大量的去群发邮件的做邮件营销的朋友们才会有这样的烦恼。邮件发送其实跟三...

    彼岸@花开

扫码关注云+社区

领取腾讯云代金券