发送Jenkins的电子邮件通知

时间:2012-08-09 13:01:01

标签: windows jenkins

我想在任何工作完成后发送电子邮件通知。 请让我知道我们如何宣传。

6 个答案:

答案 0 :(得分:9)

您可以将Jenkins配置为在作业完成时使用插件发送电子邮件。

内置

首先,您必须通过点击Manage Jenkins > Configure System配置邮件服务器设置,然后找到页面底部附近的E-mail Notification部分。或者也可以在System Admin e-mail address部分配置Jenkins Location

然后,为每个作业进行配置并Add post-build action,选择E-mail Notification并根据需要进行配置。

插件

默认的jenkins电子邮件机制的问题是它的自定义非常有限。

另一种方法是使用强大的电子邮件通知机制Email-Ext plugin。您可以定义一些全局触发器,但也可以自定义每个作业的设置。支持发送电子邮件以获取成功,失败或任何其他构建状态。

答案 1 :(得分:6)

  1. 转到:管理jenkins - >管理插件 - > '可用'标签 - >选择电子邮件地址扩展插件' - >点击按钮'安装而不重启'

  2. 管理jenkins - >配置系统 - > 在'电子邮件通知'

  3. 中输入详细信息

    填写下面给出的详细信息并保存:

    enter image description here

    1. 在项目/工作的配置中,勾选“电子邮件通知”' --->输入细节--->保存它--->建立工作/项目

答案 2 :(得分:2)

有一个Jenkins email-ext插件可以添加触发器和收件人。

答案 3 :(得分:2)

这个答案是使用python脚本发送邮件&通过詹金斯展望。

您需要拥有PsExec.exe。这会远程运行应用程序。

创建一个自由式项目&在dos shell命令之后运行:

path \ to \ psexec.exe -u username -p password -i 1 cmd -accepteula / c python path \ to \ SendMail.py

用户名& password用于outlook运行的Windows用户帐户。 path \ to \ SendMail.py是python脚本的位置。 SendMail.py看起来像这样:

import win32com.client as win32
outlook=win32.Dispatch('outlook.application')
mail=outlook.CreateItem(0)
mail.To='abc@xyz.com'
mail.Subject="Test Mail"
mail.HTMLBody="Hiii, This is just a test mail."
mail.Send()

这里我使用wind32com来执行outlook。邮件将使用Outlook中记录的默认帐户发送。

您可以在作业完成后每次触发构建此项目。

希望这对任何人都有帮助:))

答案 4 :(得分:0)

  1. 推出Jenkins。
  2. 从主页面访问管理Jenkins链接。

  3. 转到页面末尾并填写电子邮件通知详细信息: enter image description here

  4. 点击测试通知以确认它正在发送电子邮件。

  5. 请参阅Jenkins发送的电子邮件。 enter image description here

  6. enter image description here

答案 5 :(得分:0)

以上所有答案均与插件及其使用有关,但与在管道执行中如何使用无关。 假设在jenkins中配置了smtp服务器,并且安装了https://plugins.jenkins.io/email-ext/插件,我们可以使用以下格式编写或使用ij插件。

def csproj_path = 'dotnetcore_sample.csproj'

pipeline {
    agent{
        node {
            label 'dotnet-31' 
        }
    }

    stages {
        stage ('build locally'){
            steps{
                sh "dotnet build ${csproj_path}"
            }
        }
         stage ('Prompt check'){
            steps {
            mail to: 'mymail@gmail.com',
                 cc : 'ccedpeople@gamil.com'
                subject: "INPUT: Build ${env.JOB_NAME}", 
                body: "Awaiting for your input ${env.JOB_NAME} build no: ${env.BUILD_NUMBER} .Click below to promote to production\n${env.JENKINS_URL}job/${env.JOB_NAME}\n\nView the log at:\n ${env.BUILD_URL}\n\nBlue Ocean:\n${env.RUN_DISPLAY_URL}"
                timeout(time: 60, unit: 'MINUTES'){
                    input message: "Promote to Production?", ok: "Promote"
                }
            }
        }
        
    }
    
    post {
        failure {
              mail to: 'mymail@gmail.com',
                 cc : 'ccedpeople@gamil.com'
                subject: "FAILED: Build ${env.JOB_NAME}", 
                body: "Build failed ${env.JOB_NAME} build no: ${env.BUILD_NUMBER}.\n\nView the log at:\n ${env.BUILD_URL}\n\nBlue Ocean:\n${env.RUN_DISPLAY_URL}"
        }
    
    success{
            mail to: 'mymail@gmail.com',
                 cc : 'ccedpeople@gamil.com'
                subject: "SUCCESSFUL: Build ${env.JOB_NAME}", 
                body: "Build Successful ${env.JOB_NAME} build no: ${env.BUILD_NUMBER}\n\nView the log at:\n ${env.BUILD_URL}\n\nBlue Ocean:\n${env.RUN_DISPLAY_URL}"
        }
        
        aborted{
            mail to: 'mymail@gmail.com',
                 cc : 'ccedpeople@gamil.com'
                subject: "ABORTED: Build ${env.JOB_NAME}", 
                body: "Build was aborted ${env.JOB_NAME} build no: ${env.BUILD_NUMBER}\n\nView the log at:\n ${env.BUILD_URL}\n\nBlue Ocean:\n${env.RUN_DISPLAY_URL}"
        }
    }
}

上面的声明性管道包含以下功能

  1. 发送电子邮件给各个用户,以将构建升级到下一个级别。
  2. 构建成功后发送电子邮件。
  3. 在构建失败以及中止并通过链接指向日志时发送电子邮件。