Jenkins工具系列 —— 配置邮箱 每个job下动态设置临时发送人

文章目录


安装插件

点击 左侧的 Manage Jenkins ---> Plugins ------> 左侧的 Available plugins


添加邮箱认证

邮箱申请(以QQ邮箱网页为例)

1、登入QQ邮箱 ---> 点击设置 ---> 账号 ---> POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务(确保SMTP服务开启)

2、管理服务 ---> 生成授权码

3、拷贝生成的授权码

有些邮箱没有显示 smtp服务 是否开启,导致jenkins老是配置不对,发送邮件报错。
可以使用Foxmail工具打开邮件进行配置查看服务情况

右击登入的邮箱 ---> 设置 ---> 账号 ---> 服务器

jenkins添加邮箱认证

1、Manage Jenkins ---> Credentials ---> 全局

2、添加邮箱认证相关信息


jenkins设置邮箱相关信息

配置邮箱有两种方式
(1)面向所有JOB的邮箱配置。 所有的JOB都可以使用全局邮箱中的配置进行发送邮件。存在的缺点:邮箱中的配置或引用的环境变量都是一样的,邮箱被多个JOB调用时,会出现资源抢占的现象。能有多个接收方,但是只能有固定一个发件方。
(2)面向单个JOB的邮箱配置。 解决第一种邮箱配置的缺点,实现每个Job对应不同的发送邮件,多个发送方。每个JOB都可以配置与其相关的邮件内容。

配置全局邮件

a.点击 左侧的 Manage Jenkins ---> System

b.配置Extended E-mail Notification(针对SMTP服务器、邮件内容进行配置)

图中高级配置中添加上面添加的邮箱认证,是否Use SSL和邮件SMTP服务配置中一样


c.邮件通知(针对SMTP服务器、发件方进行配置)

单个JOB邮箱配置

a.打开要配置的JOB项目 ---> 构建后操作 ---> E-mail Notification

b. E-mail Notification配置

c. 编写HTMI代码实现通知邮件的默认内容。

c 复制代码
<ul>
    <li type="none"> <b> Release Notes </b> </li>
    <li style="margin-left:15px;"> <b> version </b></li>
    <li type="circle" style="margin-left:25px;"> CSDN </li>
    <li type="circle" style="margin-left:25px;"> Bazinga bingo </li>
    
    <li style="margin-left:15px;"> <b> New:</b></li>
    <li style="margin-left:15px;">  </li>
    <li style="margin-left:15px;"> <b> Feature list </b></li>
    <li type="circle" style="margin-left:25px;"> 1. A </li>
    <li type="circle" style="margin-left:25px;"> 2. B </li>
    <li type="circle" style="margin-left:25px;"> 3. C </li>
    <li type="circle" style="margin-left:25px;"> 4. D </li>
    <li type="circle" style="margin-left:25px;"> 5. E </li>
    <li type="circle" style="margin-left:25px;"> 6. F </li>
    <li type="circle" style="margin-left:25px;"> 7. G </li>
    <li type="circle" style="margin-left:25px;"> 8. H </li>
    <li type="circle" style="margin-left:25px;"> 9. I </li>
    <li type="circle" style="margin-left:25px;"> 10. J </li>
    <li type="circle" style="margin-left:25px;"> 11. K </li>
    <li style="margin-left:15px;"> <b> Fixed Bugs </b></li>
</ul>

d. 高级配置(配置)编写Groovy脚本实现在每个job下动态设置临时发送人。

c 复制代码
import jenkins.model.*
import hudson.model.*
import javax.mail.internet.InternetAddress

 //设置发送邮件的用户名密码 (注:这里的密码时授权密码,不是邮箱密码)

def username="xxx@qq.com"
def password="xxxxxxxxx"

 //写入发送邮件的用户名密码到全局配置上,同时也可以设置smtp server这些选项;这里由于我采用统一的邮箱服务商,所以只需设置两项

def descriptor1 = Jenkins.instance.getDescriptorByType(hudson.plugins.emailext.ExtendedEmailPublisherDescriptor.class)
descriptor1.setSmtpAuthUsername(username)
descriptor1.setSmtpAuthPassword(password)
descriptor1.save()

 //写入系统管理员邮件地址到全局配置上

def descriptor2 = Jenkins.instance.getDescriptorByType(hudson.tasks.Mailer.DescriptorImpl.class)
descriptor2.setAdminAddress(String.format("JenkinsJobEmail <%s>",username))
descriptor2.save()

 //经过测试,这个是临时设置发送人的系统管理员邮件地址,不然上面设置后,发送时还是不会发生改变

def email = new InternetAddress(String.format("JenkinsJobEmail <%s>", username))
msg.setFrom(email)

配置完成后,运行JOB看看。运行完之后自动发送是您自己编写的邮件,恭喜您,成功了!!!

相关推荐
AI人工智能+电脑小能手3 分钟前
大白话说Java设计模式-34-命令模式(业务实战篇)
java·spring·设计模式·命令模式·异步任务·撤销重做·事务封装
净重21克5 分钟前
万字长文!TLS协议升级避坑手册:JDK老项目适配TLS1.2/1.3全流程拆解
java·springboot·java安全
一直C8 分钟前
【数据结构】哈希表+算法复杂度与经典排序查找(C语言)
java·linux·开发语言·数据结构·算法·ubuntu·散列表
paopaokaka_luck8 分钟前
基于springboot3+vue3的车间生产管理系统(Echarts图形化分析、BI报表)
java·前端·spring boot·学习·echarts
shujudang13 分钟前
从数据闭环到 Agent 协同:企业营销自动化如何演进为智能运营?
大数据·运维·人工智能·数据分析·自动化
小白说大模型35 分钟前
Codex 实战:用 AI 写运维脚本
大数据·运维·网络·人工智能·机器学习·prompt
λqaq71 小时前
MySQL 数据库基础(2)约束、用户权限、远程连接、外键与 TCP/UDP 理解
linux·数据库·python·tcp/ip·mysql
Zane19941 小时前
遍历时删元素为什么报错:modCount 这个"计数器"在背后盯着你
java·后端
数字护盾(和中)1 小时前
和中科技剖析 EDR 绕过全链路,AMSI、ETW 规避技术与防御对策
运维·网络·人工智能·科技·安全·web安全
CedarQR1 小时前
云卓 G20 遥控器 Android 开发实录:从 USB 设备到读取摇杆/按键通道值
android·linux·无人机