jenkins發送郵箱配置,出現Error sending to the following VALID addresses,解決方案


Jenkins發送郵箱配置,需要的插件:Extended E-mail Notification,郵件通知

1、Manage Jenkins -> Configure System

2、下圖是“郵件通知”的高級配置,開始只配置了這里,沒有配置Extended E-mail Notification里高級配置,導致構建成功后報:Error sending to the following VALID addresses,第三步是解決這個問題

3、由於發送郵件用的插件是:Extended E-mail Notification,所以一定要配置在這里配置SMTP的端口號,及發件人賬號和客戶端授權密碼

Extended E-mail Notification-高級配置

4、去工程里配置郵件內容

因為我在工程里用的是Editable Email Notifaction,所以在系統配置里一定要用Extended E-mail Notification插件里的高級配置才能發下來郵件

jenkins發送郵箱配置,出現Error sending to the following VALID addresses,解決方案的更多相關文章

  1. Jenkins 郵件配置 || Jenkins 發送郵件失敗,提示:Error sending to the following VALID addresses

    jenkins---系統管理---系統設置 在Jenkins URL下填寫URL鏈接 在系統管理員郵件地址下填寫發件郵箱,這將是以后發送郵件通知的發件人 如果下載了外部郵件通知 配置一下SMTP se ...

  2. Jenkins簡介&郵箱配置

    一.Jenkins基本介紹: Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重復的工作,旨在提供一個開放易用的軟件平台,使軟件的持續集成變成可能.--摘自百科 二 ...

  3. Jenkins郵件配置,實現郵件發送策略(可實現每個Job對應不同的發送郵箱)

    前言: 首先,要有一個用來發送的郵箱,首選網易!參考:http://www.cnblogs.com/EasonJim/p/6051636.html,這里我注冊了網易的免費企業郵箱. 並且我新建沒多個郵 ...

  4. window下jenkins+allure+郵箱發送

    一.安裝allure 1)下載 allure.zip 下載地址:allure-github: https://github.com/allure-framework/allure2 2)解壓到本地目錄 ...

  5. Jenkins操作學習 --郵箱配置及測試結果構建

    前言 使用jenkins做持續集成工具,構建的整個過程中,肯定要對結果進行記錄和跟蹤,這里我們以qq郵箱為例,來講解如何配置jenkins的郵箱及發送構建結果 一.明確郵箱服務器相關信息 這里我們,要 ...

  6. django配置發送郵箱

    該郵箱配置后台發送郵箱驗證使用 settings內配置 # 服務器地址 EMAIL_HOST = 'smtp.163.com' # 端口,郵箱默認動態端口 25 EMAIL_PORT = 25 # 郵 ...

  7. Jenkins 系統管理與配置

    1. Jenkins 安裝插件的兩種方式 2. 添加憑據(Credentials) 3. 系統管理--全局工具配置 4. 系統管理--系統設置 5. 常用插件說明 Extended E-mail No ...

  8. tornado web高級開發項目之抽屜官網的頁面登陸驗證、form驗證、點贊、評論、文章分頁處理、發送郵箱驗證碼、登陸驗證碼、注冊、發布文章、上傳圖片

    本博文將一步步帶領你實現抽屜官網的各種功能:包括登陸.注冊.發送郵箱驗證碼.登陸驗證碼.頁面登陸驗證.發布文章.上傳圖片.form驗證.點贊.評論.文章分頁處理以及基於tornado的后端和ajax的 ...

  9. Jenkins 之郵件配置

    Jenkins 之郵件配置其實還是有些麻煩的,坑比較多,一不小心就...我是走了很多彎路的. 這里記錄下來,希望大家以后不要重蹈覆轍: 我測試過,這里的 Extended E-mail Notific ...

 

出處:https://www.shuzhiduo.com/A/QW5YglDBzm/

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

Jenkins 郵件配置,發送失敗,提示:Error sending to the following VALID addresses

jenkins---系統管理---系統設置

在Jenkins URL下填寫URL鏈接

在系統管理員郵件地址下填寫發件郵箱,這將是以后發送郵件通知的發件人

如果下載了外部郵件通知

配置一下SMTP server

Default user E-mail suffiix

Default Content Type

郵件通知屬性下配置

SMTP服務器

后綴等

點擊高級可以進行測試,一般測試OK, 那郵箱服務器的配置就沒有問題

除去在系統配置中,在各個具體的項目下也進行配置

比如何時收到郵件,是在success的狀態下收到,還是失敗的狀態下收到

收件人列表,該項目涉及的人

郵件模板

郵件標題模板:

【構建通知】$PROJECT_NAME - Build #$BUILD_NUMBER - $BUILD_STATUS!

郵件內容模板:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次構建日志</title>
</head>    
 
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
        <tr>
            本郵件由系統自動發出,無需回復!<br/>
            各位同事,大家好,以下為${PROJECT_NAME }項目構建信息</br>
            <td><font color="#CC0000">構建結果 - ${BUILD_STATUS}</font></td>
        </tr>
        <tr>
            <td>
                <b><font color="#0B610B">構建信息</font></b>
                <hr size="2" width="100%" align="center" />
            </td>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>項目名稱: ${PROJECT_NAME}</li>
                    <li>構建編號: 第${BUILD_NUMBER}次構建</li>
                    <li>觸發原因: ${CAUSE}</li>
                    <li>構建狀態: ${BUILD_STATUS}</li>
                    <li>項目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
                    <li>工作目錄: <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                    <li>構建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
                    <li>構建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
                </ul>
                
                <div>
                    <h4><font color="#0B610B">測試結果</font></h4>
                    <hr size="2" width="100%" />
                    <div>
                        本次測試共執行<b>${TEST_COUNTS}</b>個用例,
                        成功<b style="color: green">${TEST_COUNTS,var="pass"}</b>個,
                        失敗<b style="color: red">${TEST_COUNTS,var="fail"}</b>個,
                        跳過<b style="color: #FFEB3B">${TEST_COUNTS,var="skip"}</b>個。
                    </div>
                </div>
 
                <h4><font color="#0B610B">失敗用例</font></h4>
                <hr size="2" width="100%" />
                <!--<pre class="Jack_Meng" style="font-weight: normal">${FAILED_TESTS,showMessage="false",showStack="false"}</pre>-->
                <pre>${FAILED_TESTS}</pre>
                
                <h4><font color="#0B610B">獲取最近SVN源碼庫提交號(#$SVN_REVISION)</font></h4>
                <hr size="2" width="100%" />
                <ul>${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}</ul>
                詳細提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
 
            </td>
        </tr>
    </table>
</body>
</html>

 

這個模板,每個項目可以根據項目自身的需求修改模板。

以上是Jenkins總的配置,接下來各個項目,比如郵件要發送的人,要在什么情況下進行發送等,是在具體的項目下進行配置

第一個構建設置: 一般是在不穩定的時候,或者構建失敗的時候,給某人發送郵件

第二個構建后操作:選擇其中的編輯郵件通知。然后設置項目接受列表,回復啊,郵件內容等,注意這些都是在全局配置基礎上的,全局的配置依然有效


問題1:Jenkins發送郵件失敗,提示:Error sending to the following VALID addresses
https://testerhome.com/topics/14611 所列的解決方案,於我無效,同樣遇到上述問題
 

 

在我這邊,不能不填寫具體的project from,也不能填寫錯誤,可能是因為QQ郵箱的緣故,必須填寫QQ郵箱中綁定的發件箱的郵箱地址之后就成功了

Jenkins 郵件配置 || Jenkins 發送郵件失敗,提示:Error sending to the following VALID addresses的更多相關文章

  1. jenkins發送郵箱配置,出現Error sending to the following VALID addresses,解決方案

    Jenkins發送郵箱配置,需要的插件:Extended E-mail Notification,郵件通知 1.Manage Jenkins -> Configure System 2.下圖是“ ...

  2. jenkins郵件配置----jenkins筆記(三)

    轉載地址:https://www.cnblogs.com/sylvia-liu/p/4527390.html 前言 最近搭建Maven+Testng+jenkins的持續集成環境,希望最后實現自動郵件 ...

  3. Jenkins學習四:Jenkins 郵件配置

    本文主要對Windows環境 jenkins 的郵件通知進行介紹 jenkins 內置的郵件功能 使用email-ext插件擴展的郵件功能 郵件通知功能主要包含兩個部分:全局配置和項目配置. 一. 先 ...

  4. jenkins 郵件配置一

    jenkins默認的郵件通知 我先講解下,默認的. jenkins默認就有一個郵件通知,只是太簡單的,不能個性化或者說定制化. 設置系統管理員郵件地址 郵件通知 ①SMTP服務器:如果你使用的是公司郵 ...

  5. jenkins 郵件配置 二 ***

    Jenkins 有兩種郵件通知方式: 1.Jenkins自帶的“E-mail Notification” 2.插件:Extended E-mail Notification,是可編輯的郵件配置方式. ...

  6. jenkins 郵件配置步驟

    一.進行系統管理中的郵件配置步驟: 1.設置Extended E-mail Notification 二.對構建的job 添加郵件發送的步驟: 3.成功截圖:

  7. jenkins郵件配置以及郵件添加附件詳解

    1.在系統管理-系統設置  中找到郵件配置模塊 填寫情況如下圖 第一步,填寫系統管理員郵箱 第二步,填寫郵箱配置 第三步,然后在項目中添加郵箱配置 項目中郵件設置中關於附件添加 因為我的項目目錄中分3 ...

  8. s3cmd在配置后使用時提示ERROR: S3 error: 403 (InvalidAccessKeyId): The AWS Access Key Id you provided does not exist in our records.

    自己新建的ceph環境,下載了s3cmd來做客戶端,使用了s3cmd --configure配置后,在使用s3cmd ls可以查看到所有的bucket,但s3cmd ls s3://xxx 具體buc ...

  9. Jenkins郵件配置,實現郵件發送策略(可實現每個Job對應不同的發送郵箱)

    前言: 首先,要有一個用來發送的郵箱,首選網易!參考:http://www.cnblogs.com/EasonJim/p/6051636.html,這里我注冊了網易的免費企業郵箱. 並且我新建沒多個郵 ...

 

 

出處: https://www.bbsmax.com/A/mo5k09Kvdw/

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

jenkins郵件模板配置

一、安裝 Email Extension 插件

系統管理->插件管理,這里安裝插件“Email Extension”用於設置郵件模板。
在這里插入圖片描述
二、配置系統默認郵件參數

(一)內置的Jenkins 郵件服務器配置

1.系統管理-系統設置,先設置發件人的郵件,切記:一定要設置,且在系統管理員那個地方設置的email地址要和email配置的相同。
在這里插入圖片描述
2. 系統管理-系統設置,再設置全局設置
在這里插入圖片描述
使用gmail時,拋出javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not acceptedhttps
//www.google.com/settings/security/lesssecureapps
將“允許安全性較低的應用程序:關閉”改為“允許安全性較低的應用程序:開啟”

設置完成后,可以勾選 “通過發送測試郵件配置” 測試此配置能否連通。

(二)Extended E-mail Notification 設置
在這里插入圖片描述
詳細參數說明如下:

 Override Global Settings:如果不選,該插件將使用默認的E-mail Notification通知選項。反之,可以通過指定不同於的設置來進行覆蓋。
 Default Content Type:指定構建后發送郵件內容的類型,有Text和HTML兩種。
 Use List-ID Email Header:為所有的郵件設置一個List-ID的郵件信頭。
 Add 'Precedence: bulk' Email Header:設置優先級。
 Default Recipients:自定義默認電子郵件收件人列表。
 Reply To List:回復列表。
 Emergency reroute:如果這個字段不為空,所有的電子郵件將被單獨發送到該地址(或地址列表)。
 Excluded Committers:防止郵件被郵件系統認為是垃圾郵件,郵件列表應該沒有擴展的賬戶名(如:@domain.com),並且使用逗號分隔。
 Default Subject:自定義郵件通知的默認主題名稱。該選項能在郵件的主題字段中替換一些參數,這樣就可以在構建中包含指定的輸出信息。
 Maximum Attachment Size:郵件最大附件大小。
 Default Content:自定義郵件通知的默認內容主體。該選項能在郵件的內容中替換一些參數,這樣就可以在構建中包含指定的輸出信息。
 Default Pre-send Script:默認發送前執行的腳本。
 Enable Debug Mode:啟用插件的調試模式。
 nable Security:啟用時,會禁用發送腳本的能力,直接進入Jenkins實例。如果用戶試圖訪問Jenkins管理對象實例,將拋出一個安全異常。
 Content Token Reference:郵件中可以使用的變量,所有的變量都是可選的。

三、配置郵件模板

  1. 安裝插件:

Config File Provider:提供文件的存儲插件。

Pipeline Utility Steps:提供文件的讀寫的插件。

  1. 添加模板文件

系統管理->Managed files->Add a new Config,選擇“Extended Email Publisher Groovy Template”類型,然后添加郵件模板。

在這里插入圖片描述

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="UTF-8">  
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次構建日志</title>  
</head>  
  
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"  
    offset="0">  
    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">  
        <tr>  
            <td>各位同事,大家好,以下為${PROJECT_NAME }項目構建信息</td>  
        </tr>  
        <tr>  
            <td><br />  
            <b><font color="#0B610B">構建信息</font></b>  
            <hr size="2" width="100%" align="center" /></td>  
        </tr>  
        <tr>  
            <td>  
                <ul>  
                    <li>項目名稱 : ${PROJECT_NAME}</li>  
                    <li>構建編號 : 第${BUILD_NUMBER}次構建</li>  
                    <li>觸發原因: ${CAUSE}</li>  
                    <li>構建狀態: ${BUILD_STATUS}</li>  
                    <li>構建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>  
                    <li>構建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>  
                    <li>工作目錄 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>  
                    <li>項目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>  
                </ul>  
            </td>  
        </tr>  
        <tr>
            <td><b><font color="#0B610B">歷史變更記錄:</font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td>
                ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat="&nbsp;&nbsp;&nbsp;&nbsp;%p"}
            </td>
        </tr>
    </table>  
</body>  
</html>

四、Jenkinsfile中添加script

stage('email'){
        echo "測試發送郵件"
        // 設置生成模板文件
        configFileProvider([configFile(fileId: '6615581f-719a-4edc-9f3a-161438441471',
                                       targetLocation: 'email.html',
                                       variable: 'failt_email_template')]) {
            //  讀取模板
            template = readFile encoding: 'UTF-8', file: "${failt_email_template}"
            //  發送郵件
            emailext(subject: '任務執行失敗',
                     attachLog: true,
                     recipientProviders: [requestor()],
                     to: 'yuhuan.shi@kikatech.com',
                     body: """${template}""")
        }
    }
  }

body: 郵件內容
subject: 郵件主題
to: 指定郵件接收者
attachLog: 附加構建日志信息到附件中
recipientProviders: 設置郵件接收者,可以設置向任務請求觸發人員、項目組、整個團體等發生郵件,這樣既可以發生郵件到 to 中的設置人員,也可以發生給對應觸發人員。

 
出處:https://blog.csdn.net/qq_40396818/article/details/119865344

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

Jenkins 郵件發送「可修改模版」

 

這是我參與2022首次更文挑戰的第1天,活動詳情查看:2022首次更文挑戰

上一篇,Jenkins Pipeline 結合 Gitlab 實現 Node 項目自動構建 我們已經實現了自動構建的功能。

在團隊合作中,項目在構建異常「或成功」時候,需要郵件通知相關的人員,這就涉及到 Jenkins 郵件發送的功能了。

安裝 Email Extension

Email Extension 插件允許你配置郵件通知。通過此插件,你可以自定義郵件的發送人,接受者和發送的內容。

Manage Jenkins -> Manage Plugins -> Available 。搜索 Email Extension 安裝

install_email_extension.png

配置 Email Extension 參數

Manage Jenkins -> Configure System -> Extended E-mail Notification

extended_email_parameter.png

第 1 點: Simple Mail Transfer Protocol (SMTP) 自己申請,如果不知道如何操作,請網上找答案。(應該也許不難吧...)

fear.jpeg

第 2 點: 郵件默認的接收郵件地址。

構建腳本

使用Jenkins Pipeline 結合 Gitlab 實現 Node 項目自動構建Jenkinsfile腳本補充下。

pipeline {
    agent any
    
    tools { 
        nodejs "nodejs" 
    }
    
    stages {
        stage('Dependency') {
            steps {
                sh 'npm install'
            }
        }
        stage('Build') { 
            steps {
                sh 'npm run clean' 
                sh 'npm run build' 
            }
        }
    }
    
    // 添加的腳本內容
    post {
        always {
            emailext body: '${DEFAULT_CONTENT}',
                subject: '${DEFAULT_SUBJECT}',
                to: '${DEFAULT_RECIPIENTS}',
                from: '${env.DEFAULT_FROM_EMAIL}'
        }
    }
}

復制代碼

這就很明顯了:默認發送郵箱默認接收郵箱默認的發送主題默認的發送內容。都是獲取我們上一步設定的值。效果如下:

構建失敗:

build_failure.png

構建成功:

build_success.png

對比上面的兩張圖,構建失敗和構建成功,的構建結果字體竟然是不同的顏色,神奇...

如果你看上一節配置 Email Extension 參數中的截圖,你可能會留意到:

<h2><font color="${BUILD_STATUS}">構建結果 - ${BUILD_STATUS}</font></h2>
復制代碼

color="${BUILD_STATUS}" 嗯,加上這個,不同狀態返回的構建結果字體不同顏色了?我們帶動下構建pipelinealways -> changed。觸發構建信息由失敗 -> 成功,得到下面的結果:

build_failure_to_success.png

看來是想多了啊,並不是不同的狀態不同顏色啊。不過,如果你不介意這個bug,可以使用...

尷尬.jpeg

升級下需求

發送郵件需要根據不同狀態,使用特定的顏色區分。比如:成功 -> #27AE60 , 失敗 -> #E74C3C , 其他顏色 -> #F4E242

咦,這還不簡單?在默認的發送模版上添加判斷條件就行了。

然而,不支持,太慘了,得另辟蹊徑~(大霧)

慘貓.jpeg

經過一番搜索,Groovy Template 能夠解決這個問題。

我們更改下 pipeline 腳本:

# ...
post {
    always {
        emailext body: '''${SCRIPT, template="my-email-template"}''',
            subject: '${DEFAULT_SUBJECT}',
            to: '${DEFAULT_RECIPIENTS}',
            from: "${env.DEFAULT_FROM_EMAIL}"
    }
}
# ...
復制代碼

我們構建下。構建是成功了,但是郵箱收到的卻是:

first_time_groovy.png

Groovy Template file [my-email-template] was not found in $JENKINS_HOME/email-templates.
復制代碼

郵件提示,機器中 $JENKINS_HOME/email-templates 下並不存在 my-email-template 模版。(笑哭)

沒有權限怎么辦呢?咱可以通過其他方法不?

再查找資料,咦,有了 - Email Extension Plugin is not loading groovy template added via Config File Provider Plugin。通過配置文件解決,我們來見證下:

步驟 1 :jenkins 平台上操作,Manage Jenkins -> Managed Files

步驟 2 : 點擊 Add a new Config

步驟 3 : 點選類型 Extended Email Publisher Groovy Template, 點擊 Submit 按鈕提交

步驟 4 : 輸入名稱和相關的內容。請記住名稱,后續使用到。

configuration_file.png

因為截圖篇幅問題,這里的 Content 內容並沒有截取完整,完整的內容請戳Groovy_template.html,其中的關鍵代碼如下:

  .tr-title {
    background-color: <%= (build.result == null || build.result.toString() == 'SUCCESS') ? '#27AE60' : build.result.toString() == 'FAILURE' ? '#E74C3C' : '#F4E242' %>;
  }
復制代碼

Groovy 官方完整模版請見官方模版Groovy Email Template

扎心了啊,老鐵(尬笑)

步驟 5 : 修正你的 pipeline 文件,請確保你輸入和正確的名字"managed:Groovy Email Template"

# ...
post {
    changed {
        emailext body: '''${SCRIPT, template="managed:Groovy Email Template"}''',
            subject: '${DEFAULT_SUBJECT}',
            to: '${DEFAULT_RECIPIENTS}',
            from: "${env.DEFAULT_FROM_EMAIL}"
    }
}
# ...
復制代碼

一切就緒,我們重新構建。結果如下:

構建狀態 郵箱收到內容截圖
成功 build_color_success.png
失敗 build_color_failure.png
中止 build_color_abort.png

嗯~效果不錯(撒花🎉🎉🎉)完結

讀者有啥其他的方法呢,可以留言交流下。更多的內容,請戳Jimmy Github Blog

 
出處:https://juejin.cn/post/7062327576395513887

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

個人情況說明

我自己的問題,上面兩篇文章基本都講解到了。

我的是在Jenkins管理-->系統配置-->Extended E-mail Notification-->高級

 

 重新指定用戶名和密鑰,就可以正常在項目構建的時候發送郵件了

 個人使用郵件模板

我自己做項目中使用的是pipeline模式,郵件模板自己根據上面的稍微有一些修改

1)可以支持多種方式發生郵件。

2)郵件模板內容替換,支持命令行獲取svn版本號等。

pipeline {
    agent any
    
    environment {
        _FOO = "bar"
        _name="jack"
    }
    
    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
                echo "Hello World  name=${_name}"
                echo "======JOB_NAME=${JOB_NAME}"
                echo "======JENKINS_URL=${JENKINS_URL}"
                println('======Hello World println');
                echo "======STAGE_NAME=${STAGE_NAME}"
                echo "======env.BRANCH_NAME=${env.BRANCH_NAME}"
                echo "======currentBuild.result=$currentBuild.result"
                
                println '--------------------------------------------'
                //bat 'set'
            }
            post{
                always{
                    echo 'Hello======always post'
                }
                success{
                    echo 'Hello======success post'
                }
                failure{
                    echo 'Hello======failure post'
                }
            }
        }
        stage("downSVN"){
            steps{
                checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', 
                excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, 
                ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, 
                credentialsId: '4f639e05-2925-49cc-99ab-5a9c836bf33e', depthOption: 'infinity', ignoreExternalsOption: true, 
                local: '.', remote: 'https://127.0.0.1/svn/TestJava/trunk/JunitTest/maven_custom']], 
                quietOperation: true, workspaceUpdater: [$class: 'UpdateWithRevertUpdater']])
            }
        }
        stage("buildProject"){
            steps{
                bat 'mvn clean test'
                //for /f "delims=" %a in ('svn info --show-item last-changed-revision') do set "var=%a"
            }
        }
        
        stage("svnInfo"){
            steps{
                bat 'svn info | find "Revision" >svninfo'
            }
        }
    }
    
    post {
        always {
            // One or more steps need to be included within each condition's block.
            echo '======always'
            post_email_parent()
        }
        cleanup {
            // One or more steps need to be included within each condition's block.
            echo '======cleanup'
        }
    }
}



def post_email(String stage, String status) {
  mail to: '12345678@qq.com',
  subject: "【${PROJECT_NAME}】${stage} ${status}",
  body: "build_id: ${env.BUILD_NUMBER}\nbranch: ${env.GIT_BRANCH}\nstage: ${stage}\nbuild_url: ${env.BUILD_URL}"
}



def post_email_parent() {
    emailext(
        mimeType: 'text/html',
        to: 'lusf@cares.sh.cn,yujf@cares.sh.cn,cc:mengqiang@cares.sh.cn,bcc:mq0036@163.com',
        subject: '【構建通知】$PROJECT_NAME - Build #$BUILD_NUMBER - $BUILD_STATUS!',
        body: '${DEFAULT_CONTENT}'
    )
}


def post_email_temp() {
    emailext(
        mimeType: 'text/html',
        to: 'lusf@cares.sh.cn,yujf@cares.sh.cn,cc:mengqiang@cares.sh.cn,bcc:mq0036@163.com',
        subject: '【構建通知】$PROJECT_NAME - Build #$BUILD_NUMBER - $BUILD_STATUS!',
        body: '${FILE,path="JenkinsScript/emailTemp.txt"}'
    )
}


def post_email() {
    emailext(
        mimeType: 'text/html',
        to: 'lusf@cares.sh.cn,yujf@cares.sh.cn,cc:mengqiang@cares.sh.cn,bcc:mq0036@163.com',
        subject: '【構建通知】$PROJECT_NAME - Build #$BUILD_NUMBER - $BUILD_STATUS!',
        body: '''<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次構建日志</title>
</head>    
 
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
        <tr>
            本郵件由系統自動發出,無需回復!<br/>
            各位同事,大家好,以下為${PROJECT_NAME }項目構建信息</br>
            <td><font color="#CC0000">構建結果 - ${BUILD_STATUS}</font></td>
        </tr>
        <tr>
            <td>
                <b><font color="#0B610B">構建信息</font></b>
                <hr size="2" width="100%" align="center" />
            </td>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>項目名稱: ${PROJECT_NAME}</li>
                    <li>構建編號: 第${BUILD_NUMBER}次構建</li>
                    <li>觸發原因: ${CAUSE}</li>
                    <li>構建狀態: ${BUILD_STATUS}</li>
                    <li>項目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
                    <li>工作目錄: <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                    <li>構建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
                    <li>構建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
                </ul>
                
                <div>
                    <h4><font color="#0B610B">測試結果</font></h4>
                    <hr size="2" width="100%" />
                    <div>
                        本次測試共執行<b>${TEST_COUNTS}</b>個用例,
                        成功<b style="color: green">${TEST_COUNTS,var="pass"}</b>個,
                        失敗<b style="color: red">${TEST_COUNTS,var="fail"}</b>個,
                        跳過<b style="color: #FFEB3B">${TEST_COUNTS,var="skip"}</b>個。
                    </div>
                </div>
 
                <h4><font color="#0B610B">失敗用例</font></h4>
                <hr size="2" width="100%" />
                <!--<pre style="font-weight: normal">${FAILED_TESTS,showMessage="false",showStack="false"}</pre>-->
                <pre>${FAILED_TESTS}</pre>
                
                <h4><font color="#0B610B">獲取最近SVN源碼庫提交號(#${SVN_REVISION})[#${PROPFILE,file="svninfo",property="Revision"}]</font></h4>
                <hr size="2" width="100%" />
                <!--${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="Build No【#%n】:%c<br />", changesFormat="<div style='padding-left:20px'>%d [%a][%r] %m<br />%p</div>",pathFormat="<div style='padding-left:20px'>%p</div>"}-->
                <ul>${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="Build No【#%n】:%c<br />", changesFormat="<li>%d [%a][%r] %m</li>"}</ul>
                詳細提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
 
            </td>
        </tr>
        <!--<tr>
            <td>
                <h4><font color="#0B610B">編譯結果</font></h4>
                <hr size="2" width="100%" />${JELLY_SCRIPT,template="html"}
            </td>
        </tr>-->
    </table>
</body>
</html>'''
    )
}
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM