jenkins 的邮件通知介绍

本文主要对 jenkins 的邮件通知进行介绍:

  • jenkins 内置的邮件功能
  • 使用插件扩展的邮件功能

一,首先介绍jenkins自带的邮件功能与配置

  1. 首先进入系统管理--系统设置 jenkins 的邮件通知介绍
  2. 找到"系统管理员的邮件配置地址",对管理员的邮件进行配置(邮件发送者)jenkins 的邮件通知介绍
  3. 找到“邮件通知”的配置项,这里以QQ邮件服务器为例子jenkins 的邮件通知介绍
  4. 点击“Test configuration" ,测试配置是否联通,如果收到以下邮件,证明配置成功了:jenkins 的邮件通知介绍
  5. 接下来对构建的项目进行邮件发送验证,这样每次构建后,接收者就能收到相应的邮件了,jenkins 的邮件通知介绍PS:不过这种配置只能发送给固定的接收人,并且邮件内容单一,不够自由

二,使用“Email Extension Plugin”插件进行邮件扩展

  1. 插件安装,进入系统管理-插件管理页面jenkins 的邮件通知介绍
  2. 输入“Email Extension Plugin”,查询插件并点击“立即安装”,我这里已经装过了就不在赘述了jenkins 的邮件通知介绍
  3. 继续进入“系统管理-系统设置页面”,找到“Extended E-mail Notification”配置模块,在这里配置插件的全局控制(如果需要每个项目进行特殊的配置,在项目配置后添加“构建后操作 选择“”Editable Email Notification”进行配置)jenkins 的邮件通知介绍邮件内容模板由于我选的是html模板,所以我把我用到的模板代码贴出来供大家参考,可以修改成自己需要的:
    [html] view plain copy
    1. <!DOCTYPE html>  
    2. <html>  
    3. <head>  
    4. <meta charset="UTF-8">  
    5. <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>  
    6. </head>  
    7.   
    8. <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"  
    9.     offset="0">  
    10.     <table width="95%" cellpadding="0" cellspacing="0"  
    11.         style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">  
    12.         <tr>  
    13.             <td>(本邮件是程序自动下发的,请勿回复!)</td>  
    14.         </tr>  
    15.         <tr>  
    16.             <td><h2>  
    17.                     <font color="#0000FF">构建结果 - ${BUILD_STATUS}</font>  
    18.                 </h2></td>  
    19.         </tr>  
    20.         <tr>  
    21.             <td><br />  
    22.             <b><font color="#0B610B">构建信息</font></b>  
    23.             <hr size="2" width="100%" align="center" /></td>  
    24.         </tr>  
    25.         <tr>  
    26.             <td>  
    27.                 <ul>  
    28.                     <li>项目名称 : ${PROJECT_NAME}</li>  
    29.                     <li>构建编号 : 第${BUILD_NUMBER}次构建</li>  
    30.                     <li>SVN 版本: ${SVN_REVISION}</li>  
    31.                     <li>触发原因: ${CAUSE}</li>  
    32.                     <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>  
    33.                     <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>  
    34.                     <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>  
    35.                     <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>  
    36.                 </ul>  
    37.             </td>  
    38.         </tr>  
    39.         <tr>  
    40.             <td><b><font color="#0B610B">Changes Since Last  
    41.                         Successful Build:</font></b>  
    42.             <hr size="2" width="100%" align="center" /></td>  
    43.         </tr>  
    44.         <tr>  
    45.             <td>  
    46.                 <ul>  
    47.                     <li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>  
    48.                 </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=trueformat="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat="    %p"}  
    49.             </td>  
    50.         </tr>  
    51.         <tr>  
    52.             <td><b>Failed Test Results</b>  
    53.             <hr size="2" width="100%" align="center" /></td>  
    54.         </tr>  
    55.         <tr>  
    56.             <td><pre  
    57.                     style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">$FAILED_TESTS</pre>  
    58.                 <br /></td>  
    59.         </tr>  
    60.         <tr>  
    61.             <td><b><font color="#0B610B">构建日志 (最后 100行):</font></b>  
    62.             <hr size="2" width="100%" align="center" /></td>  
    63.         </tr>  
    64.         <!-- <tr>  
    65.             <td>Test Logs (if test has ran): <a  
    66.                 href="${PROJECT_URL}ws/TestResult/archive_logs/Log-Build-${BUILD_NUMBER}.zip">${PROJECT_URL}/ws/TestResult/archive_logs/Log-Build-${BUILD_NUMBER}.zip</a>  
    67.                 <br />  
    68.             <br />  
    69.             </td>  
    70.         </tr> -->  
    71.         <tr>  
    72.             <td><textarea cols="80" rows="30" readonly="readonly"  
    73.                     style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea>  
    74.             </td>  
    75.         </tr>  
    76.     </table>  
    77. </body>  
    78. </html>  

  4. 至此你也许会问 这不还是用的固定的接收列表嘛 (⊙_⊙) ,别着急 看到右下角的“Advanced Settings”选项没, 继续配置,jenkins 的邮件通知介绍在这个选项配置中,你可以根据构建的不同状态选择对应需要接收邮件的接受者
  5. 构建项目,查看对应的邮件接受者是否正常接收邮件。
三,附:jenkins内置的环境变量
BUILD_NUMBER, 唯一标识一次build,例如23;

BUILD_ID,基本上等同于BUILD_NUMBER,但是是字符串,例如2011-11-15_16-06-21;

JOB_NAME, job的名字,例如JavaHelloWorld;

BUILD_TAG, 作用同BUILD_ID,BUILD_NUMBER,用来全局地唯一标识一此build,例如jenkins-JavaHelloWorld-23;
EXECUTOR_NUMBER, 例如0;

NODE_NAME,slave的名字,例如MyServer01;

NODE_LABELS,slave的label,标识slave的用处,例如JavaHelloWorld MyServer01;

JAVA_HOME, java的home目录,例如C:\Program Files (x86)\Java\jdk1.7.0_01;

WORKSPACE,job的当前工作目录,例如c:\jenkins\workspace\JavaHelloWorld;
HUDSON_URL = JENKINS_URL, jenkins的url,例如http://localhost:8000/ ;

BUILD_URL,build的url 例如http://localhost:8000/job/JavaHelloWorld/23/;

JOB_URL, job的url,例如http://localhost:8000/job/JavaHelloWorld/;

SVN_REVISION,svn 的revison, 例如4;