一、安装插件
email-ext.hpi
插件安装方式参考Jenkins的四种插件安装方式
二、设定管理员邮箱
Manager Jenkins -> Configure System -> Jenkins Location
系统管理员邮箱地址将作为未来邮件的发件方,收件方可以在每个构建中各自指定(步骤)。
三、配置邮件通知
Manager Jenkins -> Configure System -> E-mail Notification
1、设定使用的SMTP服务器
如果是常规的邮箱直接去邮箱设置里面查看即可SMTP服务器即可,内网邮箱或者自行搭建的内部邮件系统可能需要询问搭建人员。
使用的邮箱需保证开启了SMTP服务,开启方式:登录邮箱界面 -> 设置 -> 开启服务。
设置界面下滑可以看到SMTP服务器。
2、设定使用的SMTP认证信息
步骤1中点击高级之后出现认证信息,认证信息可以输入邮箱的账号完整的账号密码,也可以使用邮箱名(不带后缀)作为用户名,获取授权码作为密码,示例中使用的是邮箱名+授权码的认证方式。
一般情况下,比如使用一些常见的邮箱(qq、网易等)仅支持邮箱名+授权码的认证方式,只有少数情况,比如自搭邮件系统、内部网络、自定义域才可以使用账号+密码的登陆方式。
SMTP端口的选择可以基于具体要求,如果选择使用SSL,则需使用465端口并勾选使用SSL协议,如果不使用SSL则使用25端口即可,示例中使用的是SMTP over SSL的方式进行配置
关于端口号的含义可以参考:什么是SMTP端口号(25、587、465、2525)?
首次开启SMTP时会出现一个授权码,该授权码仅显示一次,此后如果需要获取授权码则可以选择新增授权密码。
点击新增授权密码后用手机扫码,使用绑定的手机号发短信即可获得一个新的授权码。
3、测试是否配置成功
勾选Test configuration by sending test e-mail后会出现测试框,在测试框中填入收件方邮箱后点击Test configuration,即会发送一封邮件到收件方邮箱中,如发送成功则该界面会显示Email was successfully sent,否则将会显示错误信息。
若发送成功则收件方可以收到一封测试邮件,邮件中包含测试次数的信息,发送失败不会收到邮件但是也会被计数。
四、配置扩展邮件通知
Manager Jenkins -> Configure System -> Extended E-mail Notification
1、设定使用的SMTP服务器(同邮件通知)
2、设定使用的SMTP认证信息(同邮件通知)
选择高级后添加SMTP的认证并启用SSL。
若已经添加过证书则直接选用即可,若没有则需添加证书。
添加证书,认证方式同上完整邮箱的账号密码 / 邮箱名+授权码。
五、在构建项目时加入邮件通知
1、添加构建后操作
在构建项目时增加构建后操作步骤:Editable Email Notification
2、设置邮件接收列表
在Project Recipient List中加入收件邮箱,若有多个收件邮箱使用英文逗号分隔即可。
3、设置邮件格式,标题及内容
分享一个我个人比较喜欢用的邮件模板:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
本邮件由系统自动发出,无需回复!<br/>
各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>
<td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>项目描述 : ${JOB_DESCRIPTION}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建状态: ${BUILD_STATUS}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
</ul>
</td>
</tr>
<tr>
<td><b><font color="#0B610B">变更集</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<td>${JELLY_SCRIPT,template="html"}<br/>
<hr size="2" width="100%" align="center" /></td>
</tr>
</table>
</body>
</html>
邮件发送效果图:
如果从上次构建结束到此次构建开始的时间中svn进行了更新,则可以显示每一版本变更的文件及操作者。
3、选择是否发送构建日志作为邮件附件
Do Not Attach Build Log:不发送构建日志
Attach Build Log:发送构建日志
Compress and Attach Build Log:压缩并发送构建日志
如果需要发送构建日志建议使用Attach Build Log,这样很多的邮箱客户端可以直接打开附件进行查看,如outlook。
4、设置发送契机
不同的测试结果可以选择发给不同的收件方,但是邮件模板只能使用同一个。