Jenkins 配置邮件通知
前言

可以在Jenkins 中配置邮件通知,比如在构建失败时发送邮件通知项目组来及时修复问题。

Jenkins 邮件通知功能的插件主要包括:

Mailer Plugin (默认的发送邮件插件)
Email Extension Plugin (功能更强大的发送邮件插件)

建议同时安装这两个插件。

下面来介绍如何在Jenkins 中通过这两个插件来配置邮件通知。
发送邮件原理

在Jenkins中配置邮件通知之前,先来解释一下发送邮件的原理。

通常我们要发送邮件,需要以下条件:

Email from: 写信人 (必须)
Mail Server: 邮件服务器 (必须,比如SMTP服务器就是一种邮件服务器)
Mail Transfer Protocol: 邮件传输协议 (必须)
比如SMTP服务器使用的就是SMTP协议或SMPTS协议
SMTP协议默认端口有25、587
SMTPS协议默认端口有465
具体的SMTP/SMTPS协议端口以邮箱供应商提供为准
Email to: 收信人(必须)
Email cc: 抄送人 (选填)
Email bcc: 秘密抄送人 (选填)
Email reply to: 回信人 (选填)
Email subject: 邮件标题(选填,一般需要填写)
Email content: 邮件内容 (选填,一般需要填写)
Email attached: 附件 (选填)

在Jenkins中配置写信人

打开 Manage Jenkins -> Configure System,搜索”mail“找到” System Admin e-mail address “,填入写信人邮箱地址。

如果不配置”System Admin e-mail address” 会导致Jenkins发送邮件时的”Connect time out”问题。

开通SMTP服务

如果使用的是外部邮箱(比如QQ邮箱)默认SMTP服务不会开启,需要登陆邮箱后申请开启。

以QQ邮箱为例,开启SMTP服务的步骤如下:

登陆上一步System Admin e-mail address的邮箱地址
打开 设置 -> 账号,开启”POP3/SMTP服务“
根据提示进行操作,并记录自动生成的16位的SMTP服务密码

如果是公司邮箱,请联系公司邮箱管理员咨询如何连接公司邮箱SMTP服务器。
在Jenkins中配置”E-mail Notification”

打开 Manage Jenkins -> Configure System,搜索”mail“找到” E-mail Notification“。该项下的内容为Mailer Plugin的配置项。

以QQ邮箱为例,填写以下内容:

SMTP server
勾选“Use SMTP Authentication”,然后输入邮箱地址和上一步的SMTP服务密码(不是邮箱密码)
勾选”Use SSL“(即使用SMTPS协议)
SMTP Port可以留空(在勾选”Use SSL“时默认是465,否则是25)

然后勾选”Test configuration by sending test e-mail”, 填入一个收件人邮箱地址,点击“Test configuraiton” 按钮测试是否可以发送邮件成功。

E-mail Notification配置截图如下:

在Jenkins中配置Extended E-mail Notification

打开 Manage Jenkins -> Configure System,搜索”mail“找到” Extended E-mail Notification“。该项下的内容为Email Extension Plugin的配置项。

以QQ邮箱为例,填写以下内容:

SMTP server
勾选“Use SMTP Authentication”,然后输入邮箱地址和上一步的SMTP服务密码(不是邮箱密码)
勾选”Use SSL“(即使用SMTPS协议)
SMTP Port可以留空(在勾选”Use SSL“时默认是465,否则是25)
在Default Recipients中填入默认的收件人邮箱
勾选“Enable Debug Mode”(方便调试时查看错误信息,调试成功后可以取消勾选)
勾选”Allow sending to unregister users” (支持发送邮件到未注册邮箱)

Extended E-mail Notification没有“Test configuration”功能,需要创建一个Job来测试(见下一步)。

Extended E-mail Notification配置截图如下:

创建一个Job测试Extended E-mail Notification

以创建Freestyle job为例,增加一个”Post-build action“,选择”Editable Email Notification”。

如果选择“Email Notification” 则会使用Mailer Plugin的”Email Notification“的配置项。

在测试时候,”Editable Email Notification”的其它项可以保持默认,但是以下地方需要修改:

Triggers中的Failed Any的“Send To”删除掉默认的Developers,增加”Recipient List“ (因为在测试时候可能没有commit记录,Jenkins无法找到要通知的邮箱;选择”Recipient List”时,默认使用上一步配置的“Default Recipients”)。
为了测试方便,在Triggers中增加一个Always的trigger,选择收件人为“Recipient List”,无论构建成功还是失败都会发邮件通知。

配置调优

上面只是说明了Jenkins发送邮件通知的基本用法,请参考Email Extension Plugin的文档进行配置调优,以满足实际需要。

比如:

邮件格式改为HTML,更美观
使用模板来配置邮件内容
为不同的Job配置不一样的收件人
为不同的事件配置不一样的trigger
在Jenkins pipeline中集成发送邮件通知功能

Trouble Shooting

Q: Jenkins 发送邮件失败,错误信息为“Connect time out”或”Connect refused“

A: 请按以下步骤检查:

阅读上面的”发送邮件原理“,对照检查是否漏了填写必填项
阅读上面的”在Jenkins中配置写信人“,检查是否漏了填写”System Admin e-mail address”
阅读上面配置步骤,检查是否填写错误
如果使用外部邮箱,检查是否已经开通了SMTP服务,并填写正确的SMTP服务密码(不是邮箱密码)
如果是公司网络,检查是否网络防火墙禁止访问外部SMTP服务,比如在Jenkins服务器上运行telnet smtp.qq.com 465 看是否可以连接上QQ的SMTP服务器
如果在公司电脑上安装Jenkins,检查是否本机杀毒软件或防火墙禁止或关闭了访问外部SMTP服务

---------------------
作者:nklinsirui
原文:https://blog.csdn.net/nklinsirui/article/details/80743087

Jenkins 配置邮件通知步骤的更多相关文章

  1. Jenkins 配置邮件通知

    jenkins 是一个开源的自动化服务器.通过Jenkins,可以通过自动化加速软件开发过程.Jenkins管理和控制各种开发的生命周期过程,包括构建,文档,测试,包,阶段,部署,静态分析等等.您可以 ...

  2. 环境部署(八):jenkins配置邮件通知

    完成基于jenkins的持续集成部署后,任务构建执行完成,测试结果需要通知到相关人员.这篇博客,介绍如何在jenkins中配置邮件通知的方法... 一.安装邮件插件 由于Jenkins自带的邮件功能比 ...

  3. jenkins持续集成(三): jenkins配置邮件通知

    完成基于jenkins的持续集成部署后,任务构建执行完成,测试结果需要通知到相关人员.这篇博客,介绍如何在jenkins中配置邮件通知的方法... 一.安装邮件插件 由于Jenkins自带的邮件功能比 ...

  4. jenkins配置邮件通知

    参考: https://www.cnblogs.com/imyalost/p/8781759.html 谢谢大佬~

  5. Jenkins中配置邮件通知实例演示

    前言:本文通过安装配置Jenkins实现邮件通知,告知一个C# Git Repo的build成功与否 一.预配条件 在windows上安装Jenkins和它推荐安装的Plugins 创建一个@163. ...

  6. Jenkins之邮件通知

    Jenkins默认有一个邮件通知功能,但功能比较单一,能自定义的东西很少,一般使用Extended E-mail Notification插件来发送邮件,EXT Email插件功能比较多,但设置也比较 ...

  7. Jenkins进阶-邮件通知(9)

    公司内部每天大概会发布N多版本,也不能派员工一直去盯着版本发布,所以希望发布完成后通知相关人员,Jenkins最早采用通知机制就是短信和邮件,由于短信成本很高,所以我们一般在发布结束后会采用邮件.现在 ...

  8. Jenkins配置邮件信息

    1.进入Manage Jenkins----系统配置 2.设置Jenkins地址和管理员邮箱(不设置管理员邮箱无法发送邮件) 3.配置系统管理员的邮件属性 4.点击[高级]配置系统管理员的邮件属性 5 ...

  9. Jenkins配置邮件发送测试报告

    前言 在之前的文章(Jenkins自动执行python脚本输出测试报告)中,我们已成功实现利用Jenkins自动执行python脚本,输出并可直接在界面上查看测试报告,这里我们还差最后一步,我们需要将 ...

随机推荐

  1. .Net Core:Middleware中间件管道

    .NetCore中的Middleware是装配到管道处理请求和响应的组件:每个组件都可以决定是否继续进入下一个管道.并且可以在进入下一个管道前后执行逻辑: 最后一个管道或者中断管道的中间件叫终端中间件 ...

  2. JavaIO流——简单对文件的写入及读取(三)

    已经讲了写入和读取了,那么想要把一个文件的内容复制到另一个文件呢 不说太多,直接见代码 public static void copyFile(String srcFilename, String d ...

  3. CarbonData-2:core

    package Core是carbondata的核心代码. 照例,先看Test类.CarbonPropertiesValidationTest

  4. codeforces-5

    这题可害苦了我最后用了大哥的代码才过的 Diverse String #include<iostream> #include<cstdio> #include<strin ...

  5. vue前端面试题知识点整理

    vue前端面试题知识点整理 1. 说一下Vue的双向绑定数据的原理 vue 实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫 ...

  6. pom的maven仓库的配置

    这里简单记录一下问题 本人配置了nexus的私人仓库,配置阿里云的远程仓库(http://182.92.29.40/nexus/content/groups/public/)和正规的2个库(http: ...

  7. Oarcle 之DML

    DML:数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT.UPDATE.DELETE三种指令为核心 ...

  8. 五一培训 DAY1

    DAY1 枚举 例题1 题解: 例题2 题解: 例题3 题解: vis[ ]判断是否为素数,pri[ ]储存素数 例题4 题解: 例题5 题解: PS: i  <  1<<n    ...

  9. springboot整合JPA(简单整理,待续---)

    整合步骤 引入依赖: <dependencies> <dependency> <groupId>org.springframework.boot</group ...

  10. Flutter 数据存储 加权限 sharedpreference, sqflite, file

    要访问SD卡,首先读取权限肯定是要有的,不然写再多代码都是无用功.在AndroidManifest.xml文件中添加 <uses-permission android:name="an ...