Jenkin邮件收发实现原理及过程详解

 更新时间:2020年09月07日 11:43:52   作者:多测师_郑sir  
这篇文章主要介绍了Jenkin邮件收发实现原理及过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、配置 Jenkins 邮箱的全局配置

检查是否已安装插件Email Extension Plugin

获取 qq 邮箱授权码

进入 qq 邮箱 ---> 设置 ---> 账户

配置 jenkins 邮箱的全局配置:系统管理 - 系统设置 - 完成邮箱

配置 - 测试是否配置正确

<!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 class="table" width="1000" border="1" cellspacing="0" cellpadding="5">
  <caption align="center"><h3>项目构建信息</h3></caption>
  <thead>
  <tr>
    <th>构建项目-<b>${PROJECT_NAME}</b></th>
  </tr>
  </thead>
  <tbody>
  <tr>
    <td><font color="#CC0000"><b>构建结果 - ${BUILD_STATUS}</b></font></td>
  </tr>
  </tbody>
  <tr>
    本邮件由系统自动发出,无需回复!<br/>
    各位同事,大家好,以下为${PROJECT_NAME}项目构建信息</br>
  </tr>

  <tr>
    <td><br/>
      <b><font color="#0B610B">构建报告</font></b>
      <hr size="2" width="100%" align="center"/>
      <ul>
        <li>构建报告:<a href="${BUILD_URL}allure/" rel="external nofollow" >${PROJECT_URL}allure/</li>
      </ul>
    </td>
  </tr>
  <tr>
    <td><br/>
      <b><font color="#0B610B">构建信息</font></b>
      <hr size="2" width="100%" align="center"/>
      <ul>
        <li>项目名称: ${PROJECT_NAME}</li>
        <li>构建编号: 第${BUILD_NUMBER}次构建</li>
        <li>触发原因:${CAUSE}</li>
        <li>构建状态:${BUILD_STATUS}</li>
        <li>构建日志:<a href="${BUILD_URL}console" rel="external nofollow" >${BUILD_URL}console</a></li>
        <li>构建 Url: <a href="${BUILD_URL}" rel="external nofollow" >${BUILD_URL}</a></li>
        <li>工作目录: <a href="${PROJECT_URL}ws" rel="external nofollow" >${PROJECT_URL}ws</a></li>
        <li>项目 Url: <a href="${PROJECT_URL}" rel="external nofollow" >${PROJECT_URL}</a></li>
      </ul>
    </td>
  </tr>
  <tr>
    <td>
      <b><font color="#0B610B">构建详细信息</font></b>
      <hr size="2" width="100%" align="center"/>
      <ul>
        <li>BUILD_NUMBER: ${BUILD_NUMBER}</li>
        <li>BUILD_DISPLAY_NAME: ${BUILD_DISPLAY_NAME}</li>
        <li>BUILD_ID: ${BUILD_ID}</li>
        <li>JOB_NAME: ${JOB_NAME}</li>
        <li>JOB_BASE_NAME: ${JOB_BASE_NAME}</li>
        <li>BUILD_TAG: ${BUILD_TAG}</li>
        <li>EXECUTOR_NUMBER: ${EXECUTOR_NUMBER}</li>
        <li>NODE_NAME: ${NODE_NAME}</li>
        <li>NODE_LABELS: ${NODE_LABELS}</li>
        <li>WORKSPACE: ${WORKSPACE}</li>
        <li>JENKINS_HOME: ${JENKINS_HOME}</li>
        <li>JENKINS_URL: ${JENKINS_URL}</li>
        <li>BUILD_URL: ${BUILD_URL}</li>
        <li>JOB_URL: ${JOB_URL}</li>
        <li>SVN_REVISION: ${SVN_REVISION}</li>
        <li>SVN_URL: ${SVN_URL}</li>
      </ul>
    </td>
  </tr>
  
  <tr>
    <td>
      <b><font color="#0B610B">变更信息:</font></b>
      <hr size="2" width="100%" align="center"/>
    </td>
  </tr>
  <tr>
    <td>
      <ul>
        <li>
          上次构建成功后变化 : ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
        </li>
      </ul>
    </td>
  </tr>
  <tr>
    <td>
      <ul>
        <li>上次构建不稳定后变化 : ${CHANGES_SINCE_LAST_UNSTABLE, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
        </li>
      </ul>
    </td>
  <tr>
    <td>
      <ul>
        <li>历史变更记录 : <a href="${PROJECT_URL}changes" rel="external nofollow" >${PROJECT_URL}changes</a></li>
      </ul>
    </td>
  </tr>
  <tr>
    <td>
      <ul>
        <li>变更集:${JELLY_SCRIPT,template="html"}</li>
      </ul>
    </td>
  </tr>
  <tr>
    <td><b><font color="#0B610B">构建日志 (最后 200行):</font></b>
      <hr size="2" width="100%" align="center"/>
    </td>
  </tr>
  <tr>
    <td><textarea cols="120" rows="30" readonly="readonly"
           style="font-family: Courier New">${BUILD_LOG, maxLines=200}</textarea>
    </td>
  </tr>
</table>
</body>
</html>

二、构建后操作(一)

增加构建后操作步骤 E-mail Notification

执行构建,检查邮件是否成功收发

  • 当构建败时将会发送邮件
  • 当失败后第一次恢复稳定的构建也会发送邮件
  • 持续稳定后将不会发送邮件

三、构建后操作(二)

  • 增加构建后操作步骤 Editable Email Notification
  • 如果 Jenkins 系统配置中配置了Default Recipients(默认接收人)则下图中 Recipient List 中不需要输入收件人邮箱地址

构建后邮件结果如下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java多线程执行处理业务时间太久解决方法代码示例

    Java多线程执行处理业务时间太久解决方法代码示例

    这篇文章主要介绍了Java多线程执行处理业务时间太久解决方法代码示例的相关资料,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • SpringBoot整合腾讯云COS对象存储实现文件上传的示例代码

    SpringBoot整合腾讯云COS对象存储实现文件上传的示例代码

    本文主要介绍了SpringBoot整合腾讯云COS对象存储实现文件上传的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 一文了解Java动态代理的原理及实现

    一文了解Java动态代理的原理及实现

    动态代理指的是,代理类和目标类的关系在程序运行的时候确定的,客户通过代理类来调用目标对象的方法,是在程序运行时根据需要动态的创建目标类的代理对象。本文将通过案例详细讲解一下Java动态代理的原理及实现,需要的可以参考一下
    2022-07-07
  • java实习--每天打卡十道面试题!

    java实习--每天打卡十道面试题!

    临近秋招,备战暑期实习,祝大家每天进步亿点点!本篇文章准备了十道java的常用面试题,希望能够给大家提供帮助,最后祝大家面试成功,进入自己心仪的大厂
    2021-06-06
  • Java中常见的XML解析方法与应用详解

    Java中常见的XML解析方法与应用详解

    XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,被广泛应用于表示和交换独立于应用程序和硬件平台的结构化信息,下面我们就来看看它的常见解析方法有哪些吧
    2024-01-01
  • IDEA如何解决代码没有提示问题

    IDEA如何解决代码没有提示问题

    文章介绍了如何解决IDEA中代码提示功能缺失的问题,首先,需要调整快捷键设置,将CyclicExpandWord键映射为Ctrl+/,其次,确保输入框中设置为Basic,然后添加键盘快捷键Alt+/,如果问题依然存在,可能是由于电脑省电模式导致的,需要取消相关设置
    2024-11-11
  • Java使用Soap方式调用WebService接口代码示例

    Java使用Soap方式调用WebService接口代码示例

    Java调用WebService接口是指通过Java语言来访问并与WebService进行交互,WebService是一种基于Web的服务架构,它通过标准的XML和HTTP协议来提供服务,这篇文章主要给大家介绍了关于Java使用Soap方式调用WebService接口的相关资料,需要的朋友可以参考下
    2024-03-03
  • SpringMVC Mock测试实现原理及实现过程详解

    SpringMVC Mock测试实现原理及实现过程详解

    这篇文章主要介绍了SpringMVC Mock测试实现原理及实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • SpringMVC中的HandlerMapping详解

    SpringMVC中的HandlerMapping详解

    这篇文章主要介绍了SpringMVC中的HandlerMapping详解,HandlerMapping是请求映射处理器,也就是通过请求的url找到对应的逻辑处理单元(Controller),注意这里只是建立请求与Controller的映射关系,最终的处理是通过HandlerAdapt来进行处理的,需要的朋友可以参考下
    2023-09-09
  • mybatis 使用jdbc.properties文件设置不起作用的解决方法

    mybatis 使用jdbc.properties文件设置不起作用的解决方法

    这篇文章主要介绍了mybatis 使用jdbc.properties文件设置不起作用的解决方法,需要的朋友可以参考下
    2018-03-03

最新评论