基礎郵箱配置這里其實本質上調用的第三方的SMTP服務器來發送你的郵件,比如騰訊和網易家的,其原理簡單來說,就是你在郵箱的設置里面開通了相關設置,完事給你一個授權碼(要牢記該授權);然后你在借助其提供的SMTP服務的時候,其實是通過登錄你的用戶名和授權碼來登錄服務器,幫你完成發送過程。
如何開通和獲取授權碼:
- 騰訊:https://www.cnblogs.com/Neeo/articles/11199127.html#通過smtp發郵件
- 網易:https://www.cnblogs.com/Neeo/articles/11199085.html#獲取授權碼
來看配置過程:
- Jenkins的
系統管理
▶系統配置
。
- 配置
系統管理員郵件地址
,注意,這里的郵件地址和你后續配置使用的郵件地址保持一致,不然報錯(我個人在配置163郵箱時發現的該問題)。
- 下拉選擇
郵件通知
,首先點擊高級
得到完整的配置輸入框。
接下來就是填寫具體的配置了。
騰訊版#
注意這里的郵箱地址與系統管理員郵件地址保持一致。
網易版#
上述步驟配置完畢后,就可以在項目的構建后步驟中使用該功能了。
注意,如果測試郵件發送失敗,在SMTP端口填寫25再嘗試
如果是多個郵箱地址,以空格分割即可。
自定義郵件配置#
之前搞的基礎郵箱配置肯定不符合你的身份,我們接下來研究一下配置郵件擴展功能。
首先在插件管理中心確保Email Extension Plugin
插件已安裝。
擴展郵件功能有兩種方式:
- 自定義郵件模板
- 使用Jenkins內置模板
開搞!
自定義郵件模板#
先把HTML模板擱這(我也是從別處搞過來的,有問題概不負責),你搞搞就知道各個參數是啥意思了:
<!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> <h2> <b>來自Jenkins的郵件通知</b> </h2> </td> </tr> <tr> <td> <br/> <b style="color:#0B610B;">構建信息:</b> <hr size="2" width="100%" align="center"/> </td> </tr> <tr> <td> <ul> <li>項目名稱 : ${PROJECT_NAME}</li> <li>觸發原因 :${CAUSE}</li> <li>構建日志 : <a href="${BUILD_URL}console">${BUILD_URL}console</a></li> <li>單元測試報告 :<a href="${BUILD_URL}allure/">${BUILD_URL}allureReport/</a></li> <li>工作目錄 : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li> <li>測試報告下載 : <a href="${PROJECT_URL}">${PROJECT_URL}lastSuccessfulBuild/artifact/allure-report.zip</a></li> </ul> </td> </tr> <tr> <td><b style="color:#0B610B;">構建日志:</b> <hr size="2" width="100%" align="center"/> </td> </tr> <tr> <td><textarea cols="80" rows="30" readonly="readonly" style="font-family: Courier New;width: 500px;max-width: 1000px;">${BUILD_LOG}</textarea> </td> </tr> </table> </body> </html>
來看配置吧!
這里以163郵箱為例,首先,在manage jenkins
▶系統配置
中操作。
- 確認
系統管理員郵件地址
:
- 下拉選擇
Extended E-mail Notification
選項:
圖里差不過已經說明白了~
- 現在在你的job中的配置中,構建后的操作中添加
Editable Email Notification
:
Editable Email Notification
具體配置:
基本設置:
高級設置:
添加觸發器:
配置always觸發器:
- 構建job后,就可以收到郵件了:
完整的發送示例參考:https://www.cnblogs.com/Neeo/articles/12728284.html
使用Jenkins內置模板#
問題#
com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user#
告訴你用的郵箱必須是認證的!
我在配置163郵箱的時候,發現的該問題,可能的原因是,系統管理員郵件地址和你用的第三方服務器的郵件地址不一致;解決辦法就是搞一致唄。
javax.mail.AuthenticationFailedException: 535 Login fail. Authorization code is expired#
提示的是你用的授權碼已過期;解決辦法不用說了,重新申請一個授權碼。
郵件發送失敗#
我在使用qq郵箱那一套配置了高級郵箱配置,在任務中,卻一直無法發送郵件,后來發現是端口問題,默認25端口,我沒有刪除,結果有了問題。
但這里要記錄的是排查過程,我是如何發現是端口問題的?就是在系統中配置郵箱相關參數時,勾選了開啟debug模式:
然后在報錯中查到了connect timeout的錯誤,然后就把端口刪了,后來就能發送成功了。