簡體   English   中英

從 Jenkins 發送電子郵件通知

[英]Send email notification from Jenkins

我想在任何工作完成時發送電子郵件通知。 請讓我知道我們如何傳播。

您可以將 Jenkins 配置為在作業完成時發送電子郵件,無論是否使用插件。

內置

首先,您必須通過單擊“ Manage Jenkins > Configure System來配置您的郵件服務器設置,然后在頁面底部附近找到“ E-mail Notification部分。 也可以選擇在Jenkins Location部分配置System Admin e-mail address

然后對於每個作業進行其配置並Add post-build action ,選擇E-mail Notification並根據需要進行配置。

插入

默認 jenkins 電子郵件機制的問題在於它的自定義非常有限。

另一種方法是使用Email-Ext 插件,這是一種強大的電子郵件通知機制。 您可以定義一些全局觸發器,但也可以自定義每個作業的設置。 支持發送成功、失敗或任何其他構建狀態的電子郵件。

  1. 轉到:管理 jenkins --> 管理插件 --> “可用”選項卡 --> 選擇“電子郵件擴展插件” --> 單擊按鈕“無需重啟即可安裝”

  2. 管理 jenkins --> 配置系統 --> 在“電子郵件通知”中輸入詳細信息

填寫下面給出的詳細信息並保存:

在此處輸入圖片說明

  1. 在項目/作業的配置中,勾選“電子郵件通知”---> 輸入詳細信息 ---> 保存 ---> 構建作業/項目

有一個Jenkins email-ext插件可以添加觸發器和收件人。

此答案用於通過 Jenkins 使用 python 腳本和 Outlook 發送郵件。

為此,您需要擁有 PsExec.exe。 這將遠程運行應用程序。

創建一個自由式項目 & 在該運行中遵循 dos shell 命令:

path\\to\\psexec.exe -u 用戶名 -p 密碼 -i 1 cmd -accepteula /c python path\\to\\SendMail.py

用戶名和密碼用於運行 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 的默認帳戶發送。

每次作業完成后,您都可以觸發構建此項目。

希望這對任何人都有幫助:)

以上所有答案都是關於插件及其用法,而不是如何在管道執行中使用它。 假設在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: 'bruce.wayne@gmail.com',
                 cc : 'clark.kent@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. 構建失敗以及中止時的電子郵件,並帶有指向日志的鏈接。
  1. 啟動詹金斯。
  2. 從主頁訪問 Manage Jenkins 鏈接。

  3. 轉到頁面末尾並填寫電子郵件通知詳細信息: 在此處輸入圖片說明

  4. 單擊測試通知以驗證它是否正在發送電子郵件。

  5. 請參閱 Jenkins 發送的電子郵件。 在此處輸入圖片說明

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM