本文主要對 jenkins 的郵件通知進行介紹,
- jenkins 內置的郵件功能
- 使用插件擴展的郵件功能
1. 先介紹下 基本的Jenkins 郵件服務器 配置
1)system config 頁面 (以公用的163郵件服務器為例):
可以勾選 “通過發送測試郵件配置” 測試此配置能否連通, 如果收到以下郵件,恭喜
This is test email #1 sent from Jenkins
2)下面接着對構建的job 添加郵件發送的步驟,
這樣每次build后都會發送郵件給這個接收者, 到這里你會發現,只能發給 固定的對象,且格式單一(txt)
====好了,現在進入主題====
2. 使用插件 “Email Extersion Plugin”進行擴展
它可根據構建的結果,發送構建報告,給當前的committer (用git做代碼管理)
1) 該插件支持jenkins 1.5以上的版本,至少我的 1.486是不支持的啦。所以果斷升級吧。。
插件的安裝此處略 ,若您可選插件的頁卡的列表是空的,先去高級頁面檢查更新下。
2)插件用於job配置頁面,添加構建后步驟“Editable Email Notification”
上面的配置 給出了 該工程的默認接收列表,當然抄送的話 直接 可以這么寫 cc:xxxx@163.com
對於內容,你也許注意到了 這里調用了個 ‘html.jelly’ 的模板,這是插件內置的,直接用即可。(支持git每次變更的記錄,mvn 及junit 等編譯的結果報告)
當然也可以自己寫 jelly文件, 確保放置 jenkins/home/email-template下 以供jenkins調用。
3)至此你也許會問 這不還是用的固定的接收列表嘛 (⊙_⊙) ,別着急 看到右下角的高級選項沒, 繼續配置,
我設置了 build成功和失敗都發給 默認的接收者和當前提交代碼的家伙,而send to requester 是指手動觸發構建時當前登陸jenkins的用戶。
ps:
1. 如果有人 git commit時候沒有進行global的name和email設置,將不會發送到正確的郵箱(jenkins將按各自的機器名作為域名地址發送到錯誤的郵箱)
2. 當然還可在jenkins 管理用戶中 個別設置 郵箱。不過對於團隊較多的話,你就苦了。 所以還是有必要請大家提交前進行實名設置。