zoukankan      html  css  js  c++  java
  • Jenkins 配置邮件通知步骤

    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



  • 相关阅读:
    .gitignore 文件无法提交
    关于对接需求的思考
    0算法基础学算法 搜索篇第二讲 BFS广度优先搜索的思想
    Jenkins 新主题样式:jenkins-theme-v2.277
    根据swagger.json生成flutter model,暂无空安全支持
    centos下 连接sqlserver (provide:SSL Provider,error:31
    .net core 中实现一个堆结构
    .net 程序员的centos命令总结
    Spring Cloud 整合 Feign 的原理
    聊聊 Feign 的实现原理
  • 原文地址:https://www.cnblogs.com/zhangwy1024/p/10768468.html
Copyright © 2011-2022 走看看