1-Jenkins - 邮件配置
about
基础邮箱配置
基础邮箱配置这里其实本质上调用的第三方的SMTP服务器来发送你的邮件,比如腾讯和网易家的,其原理简单来说,就是你在邮箱的设置里面开通了相关设置,完事给你一个授权码(要牢记该授权);然后你在借助其提供的SMTP服务的时候,其实是通过登录你的用户名和授权码来登录服务器,帮你完成发送过程。
如何开通和获取授权码:
- 腾讯:https://www.cnblogs.com/Neeo/articles/11199127.html#通过smtp发邮件
- 网易:https://www.cnblogs.com/Neeo/articles/11199085.html#获取授权码
来看配置过程:
- Jenkins的
系统管理
▶系统配置
。
- 配置
系统管理员邮件地址
,注意,这里的邮件地址和你后续配置使用的邮件地址保持一致,不然报错(我个人在配置163邮箱时发现的该问题)。
- 下拉选择
邮件通知
,首先点击高级
得到完整的配置输入框。
接下来就是填写具体的配置了。
腾讯版
注意这里的邮箱地址与系统管理员邮件地址保持一致。
Extended E-mail Notification
网易版
注意这里的邮箱地址与系统管理员邮件地址保持一致。
上述步骤配置完毕后,就可以在项目的构建后步骤中使用该功能了。
注意,如果测试邮件发送失败,在SMTP端口填写25再尝试
如果是多个邮箱地址,以空格分割即可。
自定义邮件配置
之前搞的基础邮箱配置肯定不符合你的身份,我们接下来研究一下配置邮件扩展功能。
首先在插件管理中心确保Email Extension Plugin
插件已安装。
扩展邮件功能有两种方式:
- 自定义邮件模板
- 使用Jenkins内置模板
开搞!
自定义邮件模板
先把HTML模板搁这(我也是从别处搞过来的,有问题概不负责),你搞搞就知道各个参数是啥意思了:
<!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>
<td>
<h2>
<b>来自Jenkins的邮件通知</b>
</h2>
</td>
</tr>
<tr>
<td>
<br/>
<b style="color:#0B610B;">构建信息:</b>
<hr size="2" width="100%" align="center"/>
</td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>触发原因 :${CAUSE}</li>
<li>构建日志 : <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>单元测试报告 :<a href="${BUILD_URL}allure/">${BUILD_URL}allureReport/</a></li>
<li>工作目录 : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
<li>测试报告下载 : <a href="${PROJECT_URL}">${PROJECT_URL}lastSuccessfulBuild/artifact/allure-report.zip</a></li>
</ul>
</td>
</tr>
<tr>
<td><b style="color:#0B610B;">构建日志:</b>
<hr size="2" width="100%" align="center"/>
</td>
</tr>
<tr>
<td><textarea cols="80" rows="30" readonly="readonly"
style="font-family: Courier New;width: 500px;max-width: 1000px;">${BUILD_LOG}</textarea>
</td>
</tr>
</table>
</body>
</html>
来看配置吧!
这里以163邮箱为例,首先,在manage jenkins
▶系统配置
中操作。
- 确认
系统管理员邮件地址
:
- 下拉选择
Extended E-mail Notification
选项:
图里差不过已经说明白了~
- 现在在你的job中的配置中,构建后的操作中添加
Editable Email Notification
:
Editable Email Notification
具体配置:
基本设置:
高级设置:
添加触发器:
配置always触发器:
- 构建job后,就可以收到邮件了:
完整的发送示例参考:https://www.cnblogs.com/Neeo/articles/12728284.html
使用Jenkins内置模板
问题
com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user
告诉你用的邮箱必须是认证的!
我在配置163邮箱的时候,发现的该问题,可能的原因是,系统管理员邮件地址和你用的第三方服务器的邮件地址不一致;解决办法就是搞一致呗。
javax.mail.AuthenticationFailedException: 535 Login fail. Authorization code is expired
提示的是你用的授权码已过期;解决办法不用说了,重新申请一个授权码。
邮件发送失败
我在使用qq邮箱那一套配置了高级邮箱配置,在任务中,却一直无法发送邮件,后来发现是端口问题,默认25端口,我没有删除,结果有了问题。
但这里要记录的是排查过程,我是如何发现是端口问题的?就是在系统中配置邮箱相关参数时,勾选了开启debug模式:
然后在报错中查到了connect timeout的错误,然后就把端口删了,后来就能发送成功了。
that's all,see also: