邮件通知
自带配置
我们使用163邮箱来演示如何在pipeline中加入邮件通知。
步骤如下: 1.进入Manage Jenkins→Configure System→Jenkins Location设置页面,设置管理员邮箱
提示:这一步是必不可少的;否则,在发送邮件通知时会报出”com.sun.mail.smtp.SM TPSend-FailedException : 553 Mail frommust equal authorized user”错误
2.在同一个页面中找到E-mail Notification部分
勾选“Test configuration by sending test e-mail”复选框,输入接收测试邮件的邮箱,然后单击“Test configuration”按钮,
如果提示“Email was successfully sent”,就说明配置成功。
3.在Jenkins pipeline的post部分加入mail步骤。 mail步骤的关键参数介绍如下∶
- subject,邮件主题。
- to,收件地址
- body,邮件内容
- from,发件地址
欲了解更多参数,可以到官方文档中查看
Email Extension
mailer插件提供的功能过于简单。Email Extension插件对mailer插件进行了扩展,支持更多的特性。
- 可以定制接收人的邮件列表。
- 可以将构建日志以附件形式加到邮件中,还可以设置对日志进行压缩。
- 可以发送附件
具体使用步骤如下: 1.安装Email Extension插件
2.进入Manage Jenkins→Configure System→Extended E-mailNotification配置页面
在Jenkinsfile中使用emailext步骤,因此只要配置SMTP server ,其他选项配置保持默认配置就可以了。
3.将emailext步骤加入pipeline的post部分的failure块内。
post {
failure {
emailext body:
-
"""<p>EXECUTED: Job <b> '${env. 0B_NAME}:${env.BUILD_NUMBER}) '
</b></p><p>View console output at "<a href="${env.BUILD_URL}">
${env.JOB_NAME}:${env.BUILD_NUMBER}</a>"</p>
<p><i>(Build log is attached .)</i></p>""",
compressLog: true,
attachLog: true,
recipientProviders:
[culprits(), developers(),requestor(), brokenBuildSuspects()],
replyTo:
'do-not-reply@company.com',
subject:
"Status: ${currentBuild.result?: 'SUCCESS'} - Job '${env. 0B_NANE}: ${env.BUILD_NUMBER}'",
to:
"jenkinsbooksample@163.com"
-
}
}
收到邮件
emailext步骤的常用参数介绍如下∶
- subject : String类型,邮件主题。
- body : String类型,邮件内容。
- attachLog (可选):Bool类型,是否将构建日志以附件形式发送。
- attachmentsPattern (可选) : String类型,需要发送的附件的路径,Ant风格路径表达式。
- compressLog (可选):Bool类型,是否压缩日志。from(可选) : String类型,收件人邮箱。
- to (可选) : String类型,发件人邮箱。
- recipientProviders (可选): List类型,收件人列表类型。replyTo (可选):回复邮箱。
常用的收件人列表类型
提示:requestor ()会读取登录用户的邮箱(在个人资料设置页可以设置)。
关于完整的收件人列表类型,可以参考