Jenkins构建通知--邮件通知

2021-06-02 17:50:40 浏览数 (1)

邮件通知

自带配置

我们使用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块内。

  1. post {
  2. failure {
  3. emailext body:
  4. """<p>EXECUTED: Job <b> '${env. 0B_NAME}:${env.BUILD_NUMBER}) '
  5. </b></p><p>View console output at "<a href="${env.BUILD_URL}">
  6. ${env.JOB_NAME}:${env.BUILD_NUMBER}</a>"</p>
  7. <p><i>(Build log is attached .)</i></p>""",
  8. compressLog: true,
  9. attachLog: true,
  10. recipientProviders: [culprits(), developers(),requestor(), brokenBuildSuspects()],
  11. replyTo: 'do-not-reply@company.com',
  12. subject: "Status: ${currentBuild.result?: 'SUCCESS'} - Job '${env. 0B_NANE}: ${env.BUILD_NUMBER}'",
  13. to: "jenkinsbooksample@163.com"
  14. }
  15. }

收到邮件

emailext步骤的常用参数介绍如下∶

  • subject : String类型,邮件主题。
  • body : String类型,邮件内容。
  • attachLog (可选):Bool类型,是否将构建日志以附件形式发送。
  • attachmentsPattern (可选) : String类型,需要发送的附件的路径,Ant风格路径表达式。
  • compressLog (可选):Bool类型,是否压缩日志。from(可选) : String类型,收件人邮箱。
  • to (可选) : String类型,发件人邮箱。
  • recipientProviders (可选): List类型,收件人列表类型。replyTo (可选):回复邮箱。

常用的收件人列表类型

提示:requestor ()会读取登录用户的邮箱(在个人资料设置页可以设置)。

关于完整的收件人列表类型,可以参考

0 人点赞