讓你的 Jenkins 能夠支援 TLS (port 587) 寄信

  • 3840
  • 0

讓你的 Jenkins 能夠支援 TLS (port 587) 寄信

今天因為想要使用 TLS (Port 587) 寄信, 卻一直出現

com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first

這個錯誤訊息,搜尋一下大多都是在 linux 的解決方案。不過,最後還是被我找到解學方式了。

最主要的方式就是要在啟動時加入一個參數 -Dmail.smtp.starttls.enable=true , 要注意在 true 的前後不能夠加入 “ 符號,否則是不會成功的,我就是卡在這邊卡了很久,最後才發現不能寫成這樣 -Dmail.smtp.starttls.enable=”true”

一般來說是在啟動 Jenkins 時,加入上述參數的,但由於我的環境是 Windows + Tomcat + Jenkins,也就是說我的 Jenkins 是由 Tomcat 來負責啟動,所以我必須將這個參數加入至 Tomcat 中(雖然有人說加入到 Windows 的環境變數即可,但我試不出來)

將這個參數加入倒 Tomcat 的 Java Options 中,如下圖,接著再設定 Jenkins 寄信時記得把 SSL 取消掉,並且將 port 改成 587 即可完成使用 SMTP TLS 寄信了。我的測試是使用 Gmail: smtp.gmail.com port 587

image