将生成的报告通过jenkins发送邮件通知

安装插件

1、安装插件:Email Extension Plugin

从上一篇文章想必大家都知道了如何安装插件的两种方法了吧。在这里还是选择第二种方法,建议也选择这种方法。这样就不需要找那个插件文件的下载地址,版本与jenkins的兼容等等一系列奇奇怪怪的问题了。不要自己给自己挖坑,自己坑自己。

步骤:系统管理-插件管理-安装Email Extension插件

从上图可以看出,这里已经安装好了2.66的,如果需要更新的可以更新到最新的2.68。由于时间关系,这里就不做更新操作了。

配置发送邮件信息

1)系统管理-系统设置-Jenkins Location,这里的管理员地址要和发送人的邮箱地址一样,要不然会有问题。

2)系统管理-系统设置-Extended E-mail Notification-高级,根据红框内容填写。

Extended E-mail Notification和高级的配置如下:

  1. Override Global Settings:如果不选,该插件将使用默认的E-mail Notification通知选项。反之,您可以通过指定不同于( 默认选项)的设置来进行覆盖。

  2. Default Content Type:指定构建后发送邮件内容的类型,有Text和HTML两种.

  3. Use List-ID Email Header:为所有的邮件设置一个List-ID的邮件信头,这样你就可以在邮件客户端使用过滤。它也能阻止邮件发件人大部分的自动回复(诸如离开办公室、休假等等)。你可以使用你习惯的任何名称或者ID号,但是他们必须符合如下其中一种格式(真实的ID必须要包含在<和>标记里): <ci-notifications.company.org> Build Notifications <ci-notifications.company.org> "Build Notifications" <ci-notifications.company.org>

  4. Add 'Precedence: bulk' Email Header:设置优先级,

  5. Default Recipients:自定义默认电子邮件收件人列表。如果没有被项目配置覆盖,该插件会使用这个列表。您可以在项目配置使用$ DEFAULT_RECIPIENTS参数包括此默认列表,以及添加新的地址在项目级别。添加抄送:cc:电子邮件地址例如,CC:someone@somewhere.com

  6. Reply To List:回复列表, A comma separated list of e-mail addresses to use in the Reply-To header of the email. This value will be available as $DEFAULT_REPLYTO in the project configuration.

  7. Emergency reroute:如果这个字段不为空,所有的电子邮件将被单独发送到该地址(或地址列表)。

  8. Excluded Committers:防止邮件被邮件系统认为是垃圾邮件,邮件列表应该没有扩展的账户名(如:@domain.com),并且使用逗号分隔

  9. Default Subject:自定义邮件通知的默认主题名称。该选项能在邮件的主题字段中替换一些参数,这样你就可以在构建中包含指定的输出信息。

  10. Maximum Attachment Size:邮件最大附件大小。

  11. Default Content:自定义邮件通知的默认内容主体。该选项能在邮件的内容中替换一些参数,这样你就可以在构建中包含指定的输出信息。

  12. Default Pre-send Script:默认发送前执行的脚本(注:grooy脚本,这是我在某篇文章上看到的,不一定准确)。

  13. Enable Debug Mode:启用插件的调试模式。这将增加额外的日志输出,构建日志以及Jenkins的日志。在调试时是有用的,但不能用于生产。

  14. Enable Security:启用时,会禁用发送脚本的能力,直接进入Jenkins实例。如果用户试图访问Jenkins管理对象实例,将抛出一个安全异常。

  15. Content Token Reference:邮件中可以使用的变量,所有的变量都是可选的。

邮件模板引用别的模板,然后自己改编的:

default subject [构建通知]:{BUILD_STATUS} - {PROJECT_NAME} - Build # ${BUILD_NUMBER} !

1)模板1

复制代码
<!DOCTYPE html>

<html lang="en">
<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>
            本邮件由系统自动发出,无需回复!<br/>
            各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>
            <h1><center><font color="red">allure报告在线查看or下载allure-report.zip用firefox离线查看,测试用例见附件</font><center></h1>
        </tr>
        <tr>
            <td><br/>
            <b><font color="#0B610B">项目描述:${JOB_DESCRIPTION}<br></font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>项目名称 : ${PROJECT_NAME}</li>
                    <li>构建编号 : 第${BUILD_NUMBER}次构建</li>
                    <li>SVN 版本: ${SVN_REVISION}</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>系统allure测试报告:<a HREF="${PROJECT_URL}${BUILD_NUMBER}/allure">${PROJECT_URL}${BUILD_NUMBER}/allure</a><li>
                </ul>
    </td>
        <tr>
         <td>
            <b><font color="#0B610B">构建日志 (最后 100行):</font></b>
        <hr size="2" width="100%" align="center" />
            </td>
        </tr>
        <tr>
           <td>
                <textarea cols="80" rows="30" readonly="readonly" style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea>
            </td>
        </tr>
        ${JELLY_SCRIPT}
    </table>
</body>
</html>

3)配置后发送测试邮件看是否成功发送。这里发送测试邮件成功如下:

到邮箱查看如下图:

配置构建后操作

jenkins-项目(需要发送邮件的任务)-配置-构建后操作-Editable Email Notification

点击"Advanced Settings"

点击"Add Trigger",设置邮件的触发条件:

当插件激活后你就能编辑如下字段(只列出常用的字段):

Project Recipient List:这是一个以逗号(或者空格)分隔的收件人邮件的邮箱地址列表。允许您为每封邮件指定单独的列表。Ps:如果你想在默认收件人的基础上添加收件人:$DEFAULT_RECIPIENTS,<新的收件人>

Default Subject:允许你配置此项目邮件的主题。

Default Content:跟Default Subject的作用一样,但是是替换邮件内容。

Attach Build Log:附件构建日志。

Compress Build Log before sending:发送前压缩生成日志(zip格式)。

Triggers条件:

Failure:即时发送构建失败的邮件。如果"Still Failing"触发器已配置,而上一次构建的状态是"Failure",那么"Still Failing"触发器将发送一封邮件来替代(它)。

Unstable:即时发送构建不稳固的邮件。如果"Still Unstable"触发器已配置,而上一次构建的状态是"Unstable",那么"Still Unstable"触发器将发送一封邮件来替代(它)。

Still Failing:如果两次或两次以上连续构建的状态为"Failure",发送该邮件。

Success:如果构建的状态为"Successful"发送邮件。如果"Fixed"已配置,而上次构建的状态为"Failure"或"Unstable",那么"Fixed"触发器将发送一封邮件来替代(它)。

Fixed:当构建状态从"Failure"或"Unstable"变为"Successful"时发送邮件。

Still Unstable:如果两次或两次以上连续构建的状态为" Unstable ",发送该邮件。Before Build:当构建开始时发送邮件。

构建生成报告,并发送邮件

1)点击"立即构建"生成测试报告,然后发送邮件到相关的负责人邮箱

梳理

1)那个邮件的主题和模板内容可以单独给项目配置,也可以统一在插件处配置。单独项目配置的会覆盖插件出的配置,如果单独项目没有配置,会默认使用插件的配置。

2)可能存在发送报错501

501解决方法:

3)可能存在发送报错535

535解决方法:

检查授权码是否正确

4)QQ邮箱注意事项

QQ邮箱开启IMAP/SMTP服务:设置--账户

QQ邮箱服务器端口号

5)如果测试邮件发送成功,立即构建后,邮件却发送失败,将这个勾选上,在构建时查看控制台的日志,进行错误排查

相关推荐
李慕婉学姐14 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
奋进的芋圆15 小时前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
sxlishaobin16 小时前
设计模式之桥接模式
java·设计模式·桥接模式
model200516 小时前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端
荒诞硬汉16 小时前
JavaBean相关补充
java·开发语言
提笔忘字的帝国16 小时前
【教程】macOS 如何完全卸载 Java 开发环境
java·开发语言·macos
2501_9418824817 小时前
从灰度发布到流量切分的互联网工程语法控制与多语言实现实践思路随笔分享
java·开发语言
華勳全栈17 小时前
两天开发完成智能体平台
java·spring·go
alonewolf_9917 小时前
Spring MVC重点功能底层源码深度解析
java·spring·mvc
沛沛老爹17 小时前
Java泛型擦除:原理、实践与应对策略
java·开发语言·人工智能·企业开发·发展趋势·技术原理