如何为在 Windows 上运行的 Jenkins 启用 STARTTLS?
我在 Windows 2008 服务器上运行 Jenkins,并且我的电子邮件通知配置了以下信息:
- 主机:smtp.office365.com
- 港口:587
- SMTP 身份验证:真
- SSL:真
- ETC...
当我运行测试时,我收到以下异常消息:
javax.mail.MessagingException: Could not connect to SMTP host: smtp.office365.com, port: 587;
nested exception is:
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
该问题似乎是由于smtp.office365.com使用STARTTLS来确保连接安全。我尝试通过jenkins.xml配置文件启用STARTTLS,方法是添加以下参数:
-Dmail.smtp.starttls.enable=true
- 这是正确的开关/参数吗?
- jenkins.xml是要更新的正确文件吗?
注意:我知道,有些人已经在他们的 Linux 环境中解决了这个问题,但我正在寻找一个特定于 Windows 的解决方案。以下是我当前 jenkins.xml 文件的片段:
<service>
<id>jenkins</id>
<name>Jenkins</name>
<description>This service runs Jenkins continuous integration system.</description>
<env name="JENKINS_HOME" value="%BASE%"/>
<!--
if you'd like to run Jenkins with a specific version of Java, specify a full path to java.exe.
The following value assumes that you have java in your PATH.
-->
<executable>%BASE%\jre\bin\java</executable>
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 -Dmail.smtp.starttls.enable=true</arguments>
<!--
interactive flag causes the empty black Java window to be displayed.
I'm still debugging this.
<interactive />
-->
<logmode>rotate</logmode>
<onfailure action="restart" />
</service>