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. element-ui+vue-treeselect校验

    element-ui+vue-treeselect下拉框的校验 问题陈述: 在element-ui中有自带的表单验证,但是使用的vue-treeselect无法验证 vue-treeselect DE ...

  2. Mac截图操作,自定义快捷键

    选择system preferences 下面能看到系统定义的快捷键,可以自己修改

  3. JavaScript 判断是PC端还是移动端

    function IsPC() {     var userAgentInfo = navigator.userAgent;     var Agents = ["Android" ...

  4. IdeaJ 常见插件安装, 常用配置,常用快捷键

    -- 系统是 Ubuntu 16.04 1, 插件: 2, 常见的设置: [1] 代码提示的修改: File --> settings --> Keymap --> MainMenu ...

  5. C++ 自定义订单号

    自定义订单号 #include<iostream> #include<stack> #include <time.h> #include <sys/timeb ...

  6. VS调试SQL Server存储过程

    1.打开VS,视图-->SQL Server对象资源管理器.(我用的是VS2012) 2.添加链接,连接到数据库. 3.选择要调试的存储过程,右键,选择调试过程或者执行过程. 4.填写存储过程所 ...

  7. CSS其它特性

    文本内容左右对齐及盒子自身左右对齐 说白了,浮动就是可以让我们的div在一行中显示,方便布局,并且各个div之间没有空隙,如果使用display:inline-block也能在一行显示几个div,但是 ...

  8. 读HashMap 源码(jdk11)的见解

    如果想系统详细的了解HashMap请移步各大佬博客.这篇文章只是个人的一些见解. 数组+链表 或 数组+红黑树.这种说法感觉有迷惑性. 之前看博客都说 HashMap 的存储是数组+链表(jdk6), ...

  9. 极致21点开发DAY4

    完成的内容:1.修改上一篇博文中的Bug  2.完成任务窗口逻辑 using System; using System.Collections.Generic; using UnityEngine; ...

  10. Ubuntu 自动选择最快的镜像源

    通常情况下阿里云的镜像源(http://mirrors.aliyun.com/ubuntu/)用得比较多 但是也不排除因网络环境导致的某个镜像源访问慢问题 那么就可以配置为自动选择镜像源进行更新 修改 ...