Jenkins系列之四——設置郵件通知

Jenkins持續集成,當咱們自動打包部署完,咱們能夠發送一封郵件給相關的負責人。現介紹一下如何在Jenkins中配置實現郵件通知。html

在Jenkins中配置實現郵件通知,Jenkins提供了兩種方式的配置。java

一、Jenkins內置默認的郵件通知,可是它自己有不少侷限性,好比它的郵件通知沒法提供詳細的郵件內容、沒法定義發送郵件的格式、沒法定義靈活的郵件接收配置等等。正則表達式

二、經過安裝Email Extension Plugin插件,使用該插件來發送郵件通知。安全

無論哪一種郵件通知都有全局配置和項目配置。其中全局配置是在Jenkins中系統管理的系統設置裏面設置,項目配置在具體的項目中的配置中設置。服務器

下面分別說明Jenkins兩種郵件通知的配置。dom

示例中的Jenkins版本爲Jenkins ver. 2.107.2ide

1、Jenkins內置默認的郵件通知配置

 【系統管理】——【系統設置】svn

 

在系統設置中找到Jenkins Locaction項填入Jenkins URL和系統管理員郵件地址,系統管理員郵件地址必定要配置,不然發不了郵件通知。由於郵件通知都是由系統管理員的郵箱發出來的。單元測試

 

點擊【Test configuration】顯示Email was successfully sent則發送成功。測試

 

二、設置項目通知

選擇項目

 

 

在項目的設置中找到「增長構建後的操做步驟」,選擇「E-mail Notifacation」經過E-mail通知。

 

若是配置沒有問題,在構建出問題的時候都會有郵件通知到郵件通知接收者。

 

2、Jenkins經過Email Extension Plugin插件郵件通知配置

一、在jenkins頁面「系統管理」-->「管理插件」-->"可選插件"中搜索email-ext-plugin插件選擇並安裝,也能夠點擊「高級」-而後手動上傳安裝。

 

注:也能夠手動下載插件安裝,到官網下載插件,而後將下載的插件傳到服務器jenkins根目錄下的plugins目錄,即~/.jenkins/plugins目錄,重啓jenkins便可

官網插件下載地址https://wiki.jenkins-ci.org/display/JENKINS/Plugins

二、全局配置

一樣在點擊左邊的「系統管理」菜單,選擇右邊的「系統設置」,找到Extend E-mail Notification進行全局配置。填好SMTP Server的信息。點擊「高級」進行SMTP鑑權的配置,配置發郵件人的用戶名、密碼等信息。

 

參數說明以下:

SMTP server:設置郵件提供商的SMTP地址,mail.jfedu.net
Default Content Type
:內容展示的格式,通常選擇HTML
Default Recipients
:默認收件人
Use SMTP Authentication
:使用SMTP身份驗證,點開Default user E-mail suffix下面的高級按鈕才能看到,選中。
User Name
:郵件發送帳戶的用戶名。
Password
:郵件發送帳戶的密碼。
SMTP port
:SMTP端口。

 

1)       設置郵件的標題

Default Subject內容以下:

構建通知:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS

2)       設置郵件的內容

Default Content內容以下:

<hr/>
<h3>(本郵件是程序自動下發的,請勿回覆!)</h3><hr/>
項目名稱:$PROJECT_NAME<br/><hr/>
構建編號:$BUILD_NUMBER<br/><hr/>
構建狀態:$BUILD_STATUS<br/><hr/>
觸發緣由:${CAUSE}<br/><hr/>
構建日誌地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/>
構建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>
變動集:${JELLY_SCRIPT,template="html"}<br/>
<hr/>

點擊最右下角的"Default Triggers ..."按鈕設置默認的觸發郵件通知的事件。

 

 

根據實際狀況勾選須要觸發郵件通知的事件。

 

二、項目配置

進入到具體的項目配置界面點擊「配置」,在配置界面點擊「增長構建後操做步驟」,選擇「Editable Email Notification」

 

在設置中保存默認就能夠了。

 

在「Advanced Settings」中針對該項目進行個性化的配置

 

設置完後點擊保存。就能夠去驗證是否能夠郵件通知了。

經過測試工程構建後,Jenkins配置的郵件通接收人能夠正常收到構建信息的郵件通知。

 

 

==========================================================================================================================================

郵件通知配置相關的全局屬性詳解

1. Override Global Settings:若是不選,該插件將使用默認的E-mail Notification通知選項。反之,您能夠經過指定不一樣於( 默認選項)的設置來進行覆蓋。

2. Default Content Type:指定構建後發送郵件內容的類型,有Text和HTML兩種.

3. Use List-ID Email Header:爲全部的郵件設置一個List-ID的郵件信頭

4. Add 'Precedence: bulk' Email Header:設置優先級

5. Default Recipients:自定義默認電子郵件收件人列表。若是沒有被項目配置覆蓋,該插件會使用這個列表。您能夠在項目配置使用$ DEFAULT_RECIPIENTS參數包括此默認列表,以及添加新的地址在項目級別。添加抄送:cc:電子郵件地址例如,CC:someone@somewhere.com

6. Reply To List:回覆列表, A comma separated list of e-mail addresses to use in the Reply-To header of the email. This value will be available as $DEFAULT_REPLYTO in the project configuration.

7. Emergency reroute:若是這個字段不爲空,全部的電子郵件將被單獨發送到該地址(或地址列表)。

8. Excluded Committers:防止郵件被郵件系統認爲是垃圾郵件,郵件列表應該沒有擴展的帳戶名(如:@domain.com),而且使用逗號分隔

9. Default Subject:自定義郵件通知的默認主題名稱。該選項能在郵件的主題字段中替換一些參數,這樣你就能夠在構建中包含指定的輸出信息。

10. Maximum Attachment Size:郵件最大附件大小。

11. Default Content:自定義郵件通知的默認內容主體。該選項能在郵件的內容中替換一些參數,這樣你就能夠在構建中包含指定的輸出信息。

12. Default Pre-send Script:默認發送前執行的腳本(注:grooy腳本,這是我在某篇文章上看到的,不必定準確)。

13. Enable Debug Mode:啓用插件的調試模式。這將增長額外的日誌輸出,構建日誌以及Jenkins的日誌。在調試時是有用的,但不能用於生產。

14. Enable Security:啓用時,會禁用發送腳本的能力,直接進入Jenkins實例。若是用戶試圖訪問Jenkins管理對象實例,將拋出一個安全異常。

15. Content Token Reference:郵件中可使用的變量,全部的變量都是可選的。

全局郵件變量

email-ext插件容許使用變量來動態插入數據到郵件的主題和內容主體中。變量是一個以$(美圓符號)開始,並以空格結束的字符串。當一個郵件觸發時,主題和內容主體字段的全部變量都會經過真實的值動態地替換。一樣,變量中的「值」能包含其它的變量,都將被替換成真實的內容。

好比,項目配置頁的默認主題和內容分別對應的是全局配置頁面的DEFAULT_SUBJECT和DEFAULT_CONTENT,所以它會自動地使用全局的配置。同理,觸發器中的Subject和Content分別對應的是項目配置頁面的DEFAULT_SUBJECT和DEFAULT_CONTENT,因此它也會自動地使用項目的配置。因爲變量中的「值」能包含其它的變量,因此就能爲變量快速地建立不一樣的切入點:全局級別(全部項目),專屬級別(單一項目),觸發器級別(構建結果)。

若是你要查看全部可用的變量,你能夠點擊配置頁的Content Token Reference的問號獲取詳細的信息。

全部的變量都是可選的,每一個變量能夠以下表示,字符串類型使用name=「value」,而布爾型和數字型使用name=value。若是{和}標記裏面沒有變量,則不會被解析。示例:$TOKEN,${TOKEN},${TOKEN,count=100},${ENV,var=」PATH」}

提示:用英文逗號分隔變量的參數。

經常使用的屬性以下:

${FILE,path="PATH"} 包括指定文件(路徑)的含量相對於工做空間根目錄。

path文件路徑,注意:是工做區目錄的相對路徑。

${BUILD_NUMBER} 顯示當前構建的編號。

${JOB_DESCRIPTION} 顯示項目描述。

${SVN_REVISION} 顯示svn版本號。還支持Subversion插件出口的SVN_REVISION_n版本。

${CAUSE} 顯示誰、經過什麼渠道觸發此次構建。

${CHANGES } -顯示上一次構建以後的變化。

showPaths 若是爲 true,顯示提交修改後的地址。默認false。

showDependencies 若是爲true,顯示項目構建依賴。默認爲false

format 遍歷提交信息,一個包含%X的字符串,其中%a表示做者,%d表示日期,%m表示消息,%p表示路徑,%r表示版本。注意,並非全部的版本系統都支持%d和%r。若是指定showPaths將被忽略。默認「[%a] %m\\n」。

pathFormat 一個包含「%p」的字符串,用來標示怎麼打印路徑。

${BUILD_ID}顯示當前構建生成的ID。

${PROJECT_NAME} 顯示項目的全名。

${PROJECT_DISPLAY_NAME} 顯示項目的顯示名稱。

${SCRIPT} 從一個腳本生成自定義消息內容。自定義腳本應該放在"$JENKINS_HOME/email-templates"。當使用自定義腳本時會默認搜索$JENKINS_HOME/email-templatesdirectory目錄。其餘的目錄將不會被搜索。

script 當其使用的時候,僅僅只有最後一個值會被腳本使用(不能同時使用script和template)。

template常規的simpletemplateengine格式模板。

${JENKINS_URL} 顯示Jenkins服務器的url地址(你能夠再系統配置頁更改)。 

${BUILD_LOG_MULTILINE_REGEX}按正則表達式匹配並顯示構建日誌。

regex java.util.regex.Pattern 生成正則表達式匹配的構建日誌。無默認值,可爲空。

maxMatches 匹配的最大數量。若是爲0,將匹配全部。默認爲0。

showTruncatedLines 若是爲true,包含[...truncated ### lines...]行。默認爲true。

substText 若是非空,就把這部分文字(而不是整行)插入該郵件。默認爲空。

escapeHtml 若是爲true,格式化HTML。默認爲false。

matchedSegmentHtmlStyle 若是非空,輸出HTML。匹配的行數將變爲<b style=」your-style-value」> html escaped matched line </b>格式。默認爲空。

${BUILD_LOG} 顯示最終構建日誌。

maxLines 日誌最多顯示的行數,默認250行。

escapeHtml 若是爲true,格式化HTML。默認false。

${PROJECT_URL} 顯示項目的URL地址。

${BUILD_STATUS} -顯示當前構建的狀態(失敗、成功等等)

${BUILD_URL} -顯示當前構建的URL地址。

${CHANGES_SINCE_LAST_SUCCESS} -顯示上一次成功構建以後的變化。

reverse在頂部標示新近的構建。默認false。

format遍歷構建信息,一個包含%X的字符串,其中%c爲全部的改變,%n爲構建編號。默認」Changes for Build #%n\n%c\n」。

showPaths,changesFormat,pathFormat分別定義如${CHANGES}的showPaths、format和pathFormat參數。

${CHANGES_SINCE_LAST_UNSTABLE} -顯示顯示上一次不穩固或者成功的構建以後的變化。

reverse在頂部標示新近的構建。默認false

  format遍歷構建信息,一個包含%X的字符串,其中%c爲全部的改變,%n爲構建編號。默認」Changes for Build #%n\n%c\n」。

showPaths,changesFormat,pathFormat分別定義如${CHANGES}的showPaths、format和pathFormat參數。

${ENV} –顯示一個環境變量。

var– 顯示該環境變量的名稱。若是爲空,顯示全部,默認爲空。

${FAILED_TESTS} -若是有失敗的測試,顯示這些失敗的單元測試信息。

${JENKINS_URL} -顯示Jenkins服務器的地址。(你能在「系統配置」頁改變它)。

${HUDSON_URL} -不推薦,請使用$JENKINS_URL

${PROJECT_URL} -顯示項目的URL。

${SVN_REVISION} -顯示SVN的版本號。

${JELLY_SCRIPT} -從一個Jelly腳本模板中自定義消息內容。有兩種模板可供配置:HTML和TEXT。你能夠在$JENKINS_HOME/email-templates下自定義替換它。當使用自動義模板時,」template」參數的名稱不包含「.jelly」。

template模板名稱,默認」html」。

${TEST_COUNTS} -顯示測試的數量。

var– 默認「total」。

total -全部測試的數量。

fail -失敗測試的數量。

skip -跳過測試的數量。
相關文章
相關標籤/搜索