jenkins 郵箱配置---騰訊企業郵箱


 

 

一,簡單設置

1.登陸jenkins--》 系統管理 ---》 系統設置

2.郵箱就是發送者的郵箱,密碼是登陸郵箱的密碼

3.設置完以后,可以點擊‘test configuration’,顯示如下,表示成功,然后點擊'保存'來保存配置。

 

 4.jenkins任務配置通知人員

多個接收人員可以用空格隔開,但是以上設置只能在構建不穩定的時候才能發郵件,使用以下插件可以設置何時發送。

二、擴展功能

1.安裝插件:emailext-template.hpi

插件下載地址:http://updates.jenkins-ci.org/download/plugins/

2.系統管理--》 系統設置

原來的郵箱設置還是先留着,如下:

 

說明:

default content 內容如下:

(本郵件是jenkins構建自動觸發,請勿回復!)

項目名稱: $PROJECT_NAME

Jenkins地址: $JENKINS_URL

構建編號: $BUILD_NUMBER

構建狀態: $BUILD_STATUS

觸發原因: ${CAUSE}

構建日志地址: ${BUILD_URL}console

變更記錄: ${BUILD_URL}changes

構建地址:$BUILD_URL

構建結果FTP路徑:請查看附件result_ftp_path.txt

default triggers: 指定什么時候觸發郵件發送,可以是成功時發送,可以是失敗時發送,也可以是只要構建就發送,也可以是其它。

 3.任務配置:

多個接收者之間可以使用空格或者逗號隔開。

說明:

Disable Extended Email Publisher :這是一個很人性化的操作,如果在你調試的時候不想發郵件,那么直接勾選該選項就可以了。

以上設置的效果如下:

此外,如果想在郵件中體現其它信息,但是沒有對應的環境變量,比如,我們構建結束后,一般會把結果文件存在一定地方或者ftp服務器上,此時,就需要知道這個路基,我們可以使用郵箱設置附件的方式來實現,比如如下:

備注,這是相對於workspace的job目錄下的根目錄,其它路徑可以使用相對路徑設置。

此時,郵件效果如下:

 

這樣就可以清楚的看到需要的路徑。

另外,上面我們說到,使用這個設置,可以郵箱的打開關閉郵箱,但是,並不行手動去改動,希望實現這樣的場景:如果是jenkins自動的管理員admin構建或者是jenkins定時自動構建才需要發送郵件給小組成員,其它時候,小組成員使用自己的賬號進行調試的時候,不需要發動郵件給小組成員。這樣的場景如果手動去改,就太麻煩了,可以用腳本實現,判斷如果是admin和自動構建賬號時,如果發送郵件的開關關閉了,就打開,如果不是管理員賬號和自動構建時,如果發送郵件的開關已經打開了,就關掉。

函數調用方式:

send_email $JOB_NAME $trigger_user

函數:

function send_email()
{
  job_path="/root/.jenkins/jobs"
  email_jenkins="http://192.168.8.2:8080/jenkins/job"
  config_file=$job_path/$1/config.xml
  echo email trigger user $2
  echo config_file=$config_file
  grep -rn "ExtendedEmailPublisher>" $config_file
  email_old_line=`grep -rn "ExtendedEmailPublisher>" $config_file |awk -F ":" '{print $1 }'`
  echo email_old_line=$email_old_line
  email_fit_line=`expr $email_old_line - 1`
  email_fit_con=`sed -n "$email_fit_line"p $config_file`
  echo line $email_fit_line content is $email_fit_con
  #如果觸發者是admin或者是自動觸發的,如果郵件發送關掉了,那么打開開關,發送郵件
  #如果郵件發送者不是admin也不是自動觸發,如果郵件功能打開了,那個關閉開關,不發送郵件
  if [ "$2" == "admin" -o "$2" == "SCMTrigger" ] ;then
    echo trigger is admin ,need to send email
    if [ "${email_fit_con#*<}" == "disabled>true</disabled>" ] ;then
      echo but default email send function is disabled, so need to open it
      sed -i ""$email_fit_line"c <disabled>false</disabled>" $config_file
      curl -u admin:112233 -X POST $email_jenkins/$1/reload
    else
      echo default email send function is opened ,great !
    fi
  else
    echo trigger is not admin, donot need to send email
    if [ "${email_fit_con#*<}" == "disabled>false</disabled>" ];then
      echo but default email send function is opened ,so need to close it
      sed -i ""$email_fit_line"c <disabled>true</disabled>" $config_file
      curl -u admin:112233 -X POST $email_jenkins/$1/reload
    else
      echo default email send function is closed ,great !
    fi
  fi
  email_fit_con=`sed -n "$email_fit_line"p $config_file`
  echo line $email_fit_line new content is $email_fit_con  

  }

 

參考:https://www.cnblogs.com/zanjiahaoge666/p/6377488.html


免責聲明!

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



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