CentOS服务器上搭建Jenkins+maven+GitLab(五)——配置邮件通知功能
CentOS服务器上搭建Jenkins+maven+GitLab(一)——环境搭建
CentOS服务器上搭建Jenkins+maven+GitLab(二)——创建一个maven项目
CentOS服务器上搭建Jenkins+maven+GitLab(三)——GitLab钩子实现自动化
CentOS服务器上搭建Jenkins+maven+GitLab(四)——Jenkins的构建触发器介绍
需要新增插件:Email Extension Plugin,它的作用是:是 Jenkins 原生邮件发布器的替代品。它允许您对邮件通知的方方面面进行配置,包括何时发送邮件、发送给谁以及邮件的具体内容。因为 Jenkins 自带的邮件功能比较基础,所以官方推荐用这个插件来替代它,从而获得更强大的自定义能力(比如设置各种触发条件、收件人规则以及 HTML 格式的邮件模板等)。
(1).获取邮箱SMTP授权码
Jenkins 发送邮件需要通过外部邮箱的 SMTP 服务,出于安全考虑,现在的主流邮箱(如QQ邮箱、163邮箱、Gmail等)都不能直接使用登录密码,而是需要获取授权码。
这里大家根据自己的邮箱找一下对应的SMTP授权码。我这里使用的是QQ邮箱,我把大概步骤写一下用于给各位参考:进入到邮箱-->右上角设置-->账号与安全-->安全设置-->开启“POP3/IMAP/SMTP/Exchange/CardDAV 服务”-->生成授权码。拿到SMTP授权码保存好,不要随意公开。
以下两条知识点转自QQ邮箱:https://wx.mail.qq.com/list/readtemplate?name=app_intro.html#/agreement/authorizationCode。
1)什么是 POP3/IMAP/SMTP 服务
POP3 (Post Office Protocol - Version 3)协议用于支持使用电子邮件客户端获取并删除在服务器上的电子邮件。
IMAP (Internet Message Access Protocol)协议用于支持使用电子邮件客户端交互式存取服务器上的邮件。
SMTP (Simple Mail Transfer Protocol)协议用于支持使用电子邮件客户端发送电子邮件。
2)在第三方客户端/服务怎么设置
登录时,请在第三方客户端的密码输入框里面填入授权码进行验证。(不是填入QQ的密码)
IMAP/SMTP 设置方法
用户名/帐户: 你的QQ邮箱完整的地址
密码: 生成的授权码
电子邮件地址: 你的QQ邮箱的完整邮件地址
接收邮件服务器: imap.qq.com,使用SSL,端口号993
发送邮件服务器: smtp.qq.com,使用SSL,端口号465或587
POP3/SMTP 设置方法
用户名/帐户: 你的QQ邮箱完整的地址
密码: 生成的授权码
电子邮件地址: 你的QQ邮箱的完整邮件地址
接收邮件服务器: pop.qq.com,使用SSL,端口号995
发送邮件服务器: smtp.qq.com,使用SSL,端口号465或587
(2).配置邮件的凭证
有两种创建方式,这里我展示第一种创建方式:
1、右上角设置-->凭证管理-->Add Credentials(添加凭证)-->Username with password(用户名和密码)-->Next(下一步)-->范围选择全局(Global)以及填写其他相关信息-->Create(创建)
2、右上角个人头像-->凭证(Credentials)-->Add Credentials(添加凭证)-->全局凭据(Global)-->Username with password(用户名和密码)-->Next(下一步)-->填写其他相关信息-->Create(创建)
注意:邮箱账号要保持一致。


Treat username as secret的意思时将用户名是为机密信息,这个看情况进行勾选。

(3).配置Jenkins系统邮件
右上角设置-->系统设置-->Jenkins Location-->填写相关信息-->Extended E-mail Notification(扩展电子邮件通知)-->填写“SMTP server(SMTP服务器)”和“SMTP Port(SMTP端口)”-->点击“高级”-->“Credentials”选择邮件账号-->剩下的配置根据个人需求定制化设置()-->邮件通知(E-mail Notification)-->填写“SMTP服务器(SMTP server)”-->点击“高级”-->勾选“使用SMTP认证”-->填写邮箱的账号和SMTP授权码-->勾选“使用SSL协议”-->填写“SMTP端口(SMTP Port)”-->勾选“通过发送测试邮件测试配置”-->填写“Test e-mail recipient(测试邮件收件人)”-->确认发送成功和收到邮件-->Save(保存)。
注意:Extended E-mail Notification(扩展电子邮件通知)下面有一个“Default Recipients(默认收件人)”配置项,如果有多个收件人,请使用英文逗号 , 进行分隔。





(4).在项目中配置邮件通知功能
项目名称-->配置-->Editable Email Notification(可编辑的电子邮件通知)-->填写相关信息1-->Advanced Settings(高级设置)-->填写信息2-->Save(保存)。
关键配置项:
- Project Recipient List:填入收件人邮箱列表,多个邮箱用逗号隔开。
- Default Subject:邮件主题,可以使用变量,例如:
构建通知:${PROJECT_NAME} - 第${BUILD_NUMBER}次构建 - ${BUILD_STATUS}! - Default Content:邮件正文,支持直接写HTML代码或使用Jenkins内置变量(如
${BUILD_STATUS},${BUILD_URL}等)。 - Triggers(触发器):点击「Add Trigger」添加触发条件。例如添加
Failure - Any表示构建失败时发送;添加Always表示无论成功失败都发送。注意在触发器的“Send To”中选择Recipient List。
Triggers(触发器)对应的人员:
-
- Developers:邮件将发送给最后一次构建的代码提交者(Committers)。
- Requestor:邮件将发送给触发本次构建的用户(例如手动点击构建按钮的登录用户)。
- Culprits:如果之前已经选择了 Developers,勾选此项后,邮件还会发送给最后一次成功构建以来的所有代码提交者(即导致构建失败的嫌疑人)。






(5).补充:邮箱的维护
Jenkins自身用户的邮箱可以通过:右上角的用户图示-->Account-->Email-->Save,进行修改。
但Jenkins 本身并不存储每个开发者的邮箱,它是通过 代码提交者的用户名 + 默认邮箱后缀 来自动拼接生成邮箱地址的。因此,您必须确保以下配置正确,否则邮件将无法送达:
- 配置默认邮箱后缀:
进入「管理 Jenkins」 --> 「系统配置」 --> 找到 Extended E-mail Notification 模块,在 Default user E-mail suffix 中填写公司的邮箱后缀(例如@company.com)。 - 规范代码提交信息:
要求团队成员在本地 Git 提交代码时,必须配置真实的姓名和邮箱。如果开发者没有配置,Jenkins 可能会使用机器名作为域名,导致生成类似zhangsan@localhost这样的无效邮箱。- 正确的 Git 配置示例:
git config --global user.email "zhangsan@company.com"
- 正确的 Git 配置示例:
- 手动修正(可选):
如果个别成员提交时邮箱有误,Jenkins 管理员可以在「管理 Jenkins」 --> 「管理用户」中,找到对应的用户并手动为其设置正确的邮箱地址。
(6).测试
我在项目中配置了"Always",新增发送给"Build User",然后Jenkins中手动构建,可以看到最后发给了当前用户的邮箱。



浙公网安备 33010602011771号