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. 在C#中,Windows Console控制台 设置控制台标题、禁用关闭按钮、关闭快速编辑模式、插入模式

    设置控制台标题 禁用关闭按钮 关闭快速编辑模式 关闭插入模式 设置控制台标题.禁用关闭按钮 #region 设置控制台标题 禁用关闭按钮 [DllImport("user32.dll&quo ...

  2. setup FTP server on CentOS 7

    Setup FTP Server on CentOS 7 Install vsftpd vsftpd (Very Secure File Transport Protocol Daemon) is a ...

  3. react使用create-react-app创建的项目部署

    一.在所有的项目代码编写完成后,react项目直接部署是无法正常访问的 1.问题一 网页无法正常的浏览器刷新,刷新会报404错,路由找不到页面 2.问题二 路由跳转后,浏览器后退按钮点击后,页面不刷新 ...

  4. 接口自动化测试持续集成--Soapui接口功能测试参数化

    按照自动化测试分层实现的原理,每一层的脚本实现都要进行参数化,自动化的目标就是要实现脚本代码与测试数据分离. 当测试数据进行调整的时候不会对脚本的实现带来震荡,从而提高脚本的稳定性与灵活度,降低脚本的 ...

  5. RoboMongo命令(版本:Robo 3T 1.1.1)

    查询并排序db.getCollection('working_history').find({"identification" : "76170178"}).s ...

  6. Openstack oslo.config【一】

    OpenStack的项目貌似越来越多了,在Grizzly版之前,每个项目都得实现一套处理配置文件的代码.在每个项目的源码中基本上都可以找到openstack/common/cfg.py,inipars ...

  7. Javascript基础语法(一)

    一.Javascript简介 1. 定义 基于事件和对象驱动,并具有安全性能的脚本语言. 2. 出现背景 上世纪90年代,在美国有出现,当时有上网的环境,并且有网站服务在运行. 注册服务 上图涉及的问 ...

  8. Angular4 构建,部署,多环境

  9. rabbitMQ Management http://localhost:15672/ 打不开

    C:\RabbitMQ Server\rabbitmq_server-3.7.7\sbin>rabbitmq-plugins enable rabbitmq_management 安装rabbi ...

  10. python中split()的用法

    Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串. 语法: str.split(str="", num=str ...