文章簡介
本文分享Jenkins實現郵件傳送,安裝Jenkins可參考jenkins安裝。寫這篇文章,是在實際使用Jenkins過程中遇到這樣一個問題,當每次Jenkins構建成功或者失敗後,需要個人登入Jenkins檢視構建結果,同時在構建前做了資料備份,也需要手動的拷貝一份備份檔案到本地。為了解決這個問題,便想到了Jenkins的郵件功能。在個人實踐中,在每次master分支自動構建前,需要將資料庫和程式碼打包、備份,在Jenkins構建結束之後,將備份的檔案傳送給對應的負責人。
文章部分細節的地方可能省略待過,因此需要對Jenkins有一定使用的使用者比較合適,如果不熟悉的,可以參考上面提交的文章。文章涉及到不準確的資訊還望反饋。
大致邏輯
接下來整個流程,也都按照該流程進行演示如何配置。
安裝外掛
首先點選管理,然後點選外掛管理,跳轉到外掛中心。
如果沒有安裝過email對應的外掛,點選可選外掛按鈕,然後輸入email關鍵詞,進行搜尋即可。這裡我已經安裝過了,為了演示選擇已安裝選單。
在安裝外掛的過程中,需要注意一個版本號。2.73版本的外掛有一個bug,就是配置正確卻不能傳送郵件。建議避開這個版本號。
系統配置
安裝好外掛之後,接下來就需要進入系統配置。進入系統配置,主要配置兩個地方,一個是管理員的郵箱地址,一個是外掛的配置資訊。
記住外掛傳送郵件的賬號一定的和管理員的郵箱賬號一致,否者會出現下面錯誤資訊。
錯誤資訊:
com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1587)
Caused: com.sun.mail.smtp.SMTPSendFailedException: 553 Mail from must equal authorized user;
nested exception is:
com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2057)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1580)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1097)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
at hudson.tasks.Mailer$DescriptorImpl.doSendTestMail(Mailer.java:581)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
錯誤資訊的大致意思就是說,郵箱的授權使用者(外掛配置的賬號)和from(郵件傳送者)賬號不一致。
這裡其實有點小困惑,郵件配置授權賬戶,為什麼管理員的郵件賬號還必須保持一致。按理來說,既然配置了授權使用者,就採用配置的授權郵箱進行傳送唄。可能是系統使用的管理員郵件傳送。這裡的配置授權僅僅是為了授權第三方郵箱賬戶吧。
專案配置
接下來,我們建立一個任務測試傳送郵件。至於具體的配置這裡省略待過,直接記錄配置郵件的地方。
這裡面就是針對該專案的具體配置資訊,上面我們提交到系統配置,屬於全域性配置。如果這裡沒有配置,則預設走全域性配置。大致的配置資訊和全域性配置都是相同的作用,可以根據不同的任務,自行配置即可。
郵件測試
最後配置完畢,當提交程式碼待倉庫後,使用webhooks自動觸發構建,登入郵箱就可以檢視到下面的一些構建基礎資訊了。如果郵件需要更多的配置資訊,直接到任務中去配置即可。
本作品採用《CC 協議》,轉載必須註明作者和本文連結