Jenkins pipeline 发送邮件及包含附件
设置邮箱开启SMTP服务
此处适用163 邮箱
- 开启POP3/SMTP服务
- 通过短信获取TOKEN (保存TOKEN, 后面Jenkins会用到)
Jenkins 邮箱设置
安装 Build Timestamp插件
设置全局凭证
Dashboard
-> Manage Jenkins
-> Credentials
-> Stores scoped to Jenkins
-> Domains (global)
新增一个ID,配置对应的用户名,密码(163 开启POP3/SMTP 服务提供的 TOKEN)
设置邮箱
Dashboard
->Manage Jenkins
->System
->Jenkins Location
->
System Admin e-mail address
: fernando_xxxx@163.com (开启了POP3/SMTP的邮箱地址)Dashboard
->Manage Jenkins
->System
->Jenkins Location
->
Extended E-mail Notification
:
SMTP server
: smtp.163.com
SMTP Port
: 25
Advanced
->Credentials
: 163_email_user
Default user e-mail suffix
: 163.com
Default Content Type
: HTML (text/html)
Jenkins pipeline 验证
groovy
pipeline {
agent any
stages {
stage('Check and Create Directory') {
steps {
script {
def dir = "zip_files"
sh 'rm -fr ${dir}'
if (!fileExists(dir)) {
sh "mkdir -p ${dir}"
}
}
}
}
stage('Execute Python Statement') {
steps {
sh 'python3 -c "print(\'Hello from Python in Jenkins\')"'
writeFile file: './zip_files/file1.txt', text: 'This is the content of file1'
writeFile file: './zip_files/file2.txt', text: 'This is the content of file2'
script {
env.ZIP_FILE = "test.zip"
}
sh "zip -r ${env.ZIP_FILE} ./zip_files/*.txt"
}
}
stage('Send Email') {
steps {
script {
def version = "1.0.${env.BUILD_NUMBER}"
emailext (
subject: "Build and Package Report for Version ${version}",
body: "Please find the attached packaged zip file.",
// hide the mail address
to: "9949****@qq.com",
attachmentsPattern: env.ZIP_FILE
)
}
}
}
}
}