[英]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 插件,這是一種強大的電子郵件通知機制。 您可以定義一些全局觸發器,但也可以自定義每個作業的設置。 支持發送成功、失敗或任何其他構建狀態的電子郵件。
有一個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}"
}
}
}
上述聲明性管道由以下功能組成
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.