1-Jenkins - 邮件配置

about

基础邮箱配置

基础邮箱配置这里其实本质上调用的第三方的SMTP服务器来发送你的邮件,比如腾讯和网易家的,其原理简单来说,就是你在邮箱的设置里面开通了相关设置,完事给你一个授权码(要牢记该授权);然后你在借助其提供的SMTP服务的时候,其实是通过登录你的用户名和授权码来登录服务器,帮你完成发送过程。
如何开通和获取授权码:

来看配置过程:

  1. Jenkins的系统管理系统配置

  1. 配置系统管理员邮件地址注意,这里的邮件地址和你后续配置使用的邮件地址保持一致,不然报错(我个人在配置163邮箱时发现的该问题)

  1. 下拉选择邮件通知,首先点击高级得到完整的配置输入框。

接下来就是填写具体的配置了。

腾讯版

注意这里的邮箱地址与系统管理员邮件地址保持一致。


Extended E-mail Notification

网易版

注意这里的邮箱地址与系统管理员邮件地址保持一致。

上述步骤配置完毕后,就可以在项目的构建后步骤中使用该功能了。
注意,如果测试邮件发送失败,在SMTP端口填写25再尝试

如果是多个邮箱地址,以空格分割即可。

自定义邮件配置

之前搞的基础邮箱配置肯定不符合你的身份,我们接下来研究一下配置邮件扩展功能。
首先在插件管理中心确保Email Extension Plugin插件已安装。

扩展邮件功能有两种方式:

  1. 自定义邮件模板
  2. 使用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>项目名称&nbsp;:&nbsp;${PROJECT_NAME}</li>
                <li>触发原因&nbsp;:${CAUSE}</li>
                <li>构建日志&nbsp;:&nbsp;<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
                <li>单元测试报告&nbsp;:<a href="${BUILD_URL}allure/">${BUILD_URL}allureReport/</a></li>
                <li>工作目录&nbsp;:&nbsp;<a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
                <li>测试报告下载&nbsp;:&nbsp;<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系统配置中操作。

  1. 确认系统管理员邮件地址

  1. 下拉选择Extended E-mail Notification选项:

图里差不过已经说明白了~

  1. 现在在你的job中的配置中,构建后的操作中添加Editable Email Notification:

  1. Editable Email Notification具体配置:

基本设置:

高级设置:

添加触发器:

配置always触发器:

  1. 构建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:

jenkins配置邮件及增强版邮件通知

posted @ 2020-04-29 23:18  听雨危楼  阅读(730)  评论(0编辑  收藏  举报