3.Jenkins邮件配置
目录
- 前提
- 目的
- 插件下载
- 配置
- 创建Jenkins项目
- 发送HTML的通知
- 第一步,修改发送邮件格式
- 第二步,在项目中添加html文件
- html内容
- html存放位置
- Pipeline脚本
- 第三步,执行Build
前提
需自行开启邮箱服务器,126,163,qq,sina都可以
目的
当构建后,要将结果以邮件形式发送给指定管理员
插件下载
Email Extension Template

配置
-
Manage Jenkins->Configure System->Jenkins Location
配置发件邮箱

-
Manage Jenkins->Configure System->Extended E-mail Notification
配置邮件服务器


创建Jenkins项目
- 添加Pipeline 脚本
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
post { #以上流程执行完后发邮件
always { #不管流程是否报错都执行
emailext(
subject: '项目名:${PROJECT_NAME},第几次构建:${BUILD_NUMBER},构建结果:${BUILD_STATUS}!',
body: '邮件正文,可在Manage Jenkins->Configure System->Extended E-mail Notification->Default Content Type中配置发送html',
to: '476852847@qq.com' #接收邮件的人,多人用,隔开
)
}
}
}
- 执行Bulid,即可收到邮件
发送HTML的通知
最终收到的结果如下:

第一步,修改发送邮件格式
Manage Jenkins->Configure System->Extended E-mail Notification->Default Content Type中配置发送html

第二步,在项目中添加html文件
html内容
${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志
(本邮件是程序自动下发的,请勿回复!)
构建结果 - ${BUILD_STATUS}
构建信息
- 项目名称 : ${PROJECT_NAME}
- 构建编号 : 第${BUILD_NUMBER}次构建
- 触发原因: ${CAUSE}
- 构建日志: ${BUILD_URL}console
- 构建 Url : ${BUILD_URL}
- 工作目录 : ${PROJECT_URL}ws
- 项目 Url : ${PROJECT_URL}
Changes Since Last
Successful Build:
- 历史变更记录 : ${PROJECT_URL}changes
${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:
%c
",showPaths=true,changesFormat="[%a]
%m
",pathFormat=" %p"}
Failed Test Results
$FAILED_TESTS
构建日志 (最后 100行):
html存放位置
可调整,调整后下面的路径也要调整

Pipeline脚本
发邮件在下方post{}中
def remote = [:]
remote.name = 'test'
remote.host = '192.168.0.104'
remote.user = 'root'
remote.password = '123'
remote.allowAnyHosts = true
pipeline {
agent any
stages {
stage('拉取代码' ) {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/${branch}']], extensions: [], userRemoteConfigs: [[credentialsId: 'ff8ba3ca-be5f-4535-bb37-08de5ef208f9', url: 'https://gitee.com/RollBack2010/jekins-study.git']]])
}
}
stage('编译代码 ') {
steps {
sh 'mvn clean package'
}
}
stage('停止服务 ') {
steps {
sshCommand remote: remote, command: "bash /usr/local/project/stop.sh"
}
}
stage('发布运行 ') {
steps {
sshPublisher(publishers: [sshPublisherDesc(configName: 'jarPath', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /usr/local/project
./start.sh''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: 'target/', sourceFiles: 'target/demo-0.0.1-SNAPSHOT.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
}
post {
always {
emailext(
subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} -${BUILD_STATUS}!',
body: '${FILE,path="email.html"}', #会去项目根目录找"email.html"文件,路径修改了要同步修改
to: '476852847@qq.com'
)
}
}
}
第三步,执行Build
以上参考传智播客笔记