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. 我对MVC的理解

    1.    MVC :M模型  V视图  C控制器 1.1  模型是用来处理业务逻辑的,里面由许多类构成 1.2  视图是用来显示界面的 1.3  控制器是一个中间人,它通过视图的提交方式(post, ...

  2. php----------const 定义的常量和define()定义的常量的区别?

    用法一:const用于类成员变量,一经定义不可修改,define用于全局常量,不可用于类成员变量的定义,const可在类中使用也可以在类外面使用,define不能. 定义:const 常量名=值; 没 ...

  3. redis----------linux和mac如何安装redis和启动,关闭

    1.打开官网https://redis.io/download.官网有安装命令 2.以下是我的执行过程截图 执行完官网给的命令以后,再执行  make PREFIX=/usr/local/redis ...

  4. Flask性能优化对比

    基于Flask的网关:Flask,Uwsgi,Gevent,Gunicorn(gevent),Tornado,Twisted !/usr/bin/python -- coding:utf-8 -- 美 ...

  5. 006-CSS引入外部字体

    我们制作页面css,设置字体,可能会需要加入一些比较特殊的字体,这时候就需要引入这些字体. 方法如下: @font-face { font-family: KuTang;/*定义字体的名字*/ src ...

  6. linux下chromedriver的安装

    很多时候,发现phantomjs被一些网站屏蔽导致我们无法达到想要的结果,一方面phantomjs也停止维护,这时候们可以使用chromedriver(谷歌)或者firefoxdriver(火狐)来代 ...

  7. 灵雀云:etcd 集群运维实践

    [编者的话]etcd 是 Kubernetes 集群的数据核心,最严重的情况是,当 etcd 出问题彻底无法恢复的时候,解决问题的办法可能只有重新搭建一个环境.因此围绕 etcd 相关的运维知识就比较 ...

  8. Beyond Compare相同文件为何显示差异

    原文地址: http://www.beyondcompare.cc/wenti/wenjian-chayi.html Beyond Compare是一款经典老牌且优秀的专业级文本比较工具,它可以很方便 ...

  9. react16实战总结

    实战总结 react实战基础 遇到的一些坑 li里要带key值否则会警告,这个问题在vue中也存在, 考虑到虚拟DOM中diff,所以不要用index作为key值,而要用item. 2.immutab ...

  10. 堆叠式降噪自动编码器(SDA)

    1.1 自动编码器  自动编码器(AutoEncoder,AE)就是一种尽可能复现输入信号的神经网络,其输出向量与输入向量同维,常按照输入向量的某种形式,通过隐层学习一个数据的表示或对原始数据进行有效 ...