Jenkins SMTP TLS

Estou tentando configurar o Jenkins para usar o servidor SMTP da empresa para enviar notificações por email. Estamos usando TLS como o método de criptografia na porta 587. Não consigo fazer com que a notificação por e-mail funcione corretamente.

Aqui está o meu arquivo Hudson.Tasks.Mailer.xml para que você possa ver a minha configuração (eu removi o usuário de autenticação SMTP e a senha e mudei o smtpHost ligeiramente apenas no caso)

<hudson.tasks.Mailer_-DescriptorImpl>
  <helpRedirect/>
  <defaultSuffix></defaultSuffix>
  <hudsonUrl>http://localhost:8080/</hudsonUrl>
  <smtpAuthUsername></smtpAuthUsername>
  <smtpAuthPassword></smtpAuthPassw$
  <adminAddress></adminAddress>
  <smtpHost>pod#####.outlook.com</smtpHost>
  <useSsl>true</useSsl>
  <smtpPort>587</smtpPort>
  <charset>UTF-8</charset>
</hudson.tasks.Mailer_-DescriptorImpl>

Parece que este é um problema conhecido, dehttp://issues.hudson-ci.org/browse/HUDSON-2206

Eu não estou muito familiarizado com o Apple OS (que é a máquina que está executando o Jenkins), mas eu pensei que poderia resolver o problema usando a solução alternativa mencionada. Eu não sabia exatamente onde colocar essa solução alternativa, então tentei colocá-la aqui: / Library / Application Support / Jenkins / jenkins-runner.sh

defaults="defaults read /Library/Preferences/org.jenkins-ci"

war=`$defaults war` || war="/Applications/Jenkins/jenkins.war"

javaArgs="-Dmail.smtp.starttls.enable=\"true\""
heapSize=`$defaults heapSize` && javaArgs="$javaArgs -Xmx${heapSize}"
permGen=`$defaults permGen` && javaArgs="$javaArgs -XX:MaxPermSize=${permGen}"

home=`$defaults JENKINS_HOME` && export JENKINS_HOME="$home"

add_to_args() {
  val=`$defaults $1` && args="$args --${1}=${val}"
}

args=""
add_to_args prefix
add_to_args httpPort
add_to_args httpListenAddress
add_to_args httpsPort
add_to_args httpsListenAddress
add_to_args ajp13Port
add_to_args ajp13ListenAddress

echo "JENKINS_HOME=$JENKINS_HOME"
echo "Jenkins command line for execution"
echo /usr/bin/java $javaArgs -jar "$war" $args
exec /usr/bin/java $javaArgs -jar "$war" $args

Isso não pareceu resolvê-lo. Eu posso ver essa chamada no console quando o Jenkins é iniciado, mas quando eu tento um email de configuração de teste, recebo o seguinte erro:

Failed to send out e-mail

javax.mail.MessagingException: Could not connect to SMTP host: pod#####.outlook.com, port: 587;
nested exception is:
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
at javax.mail.Service.connect(Service.java:317)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)

Alguma idéia do que mais eu posso tentar? Eu tentei mudar a conta de e-mail para usar o servidor smtp do Gmail e que funciona bem, mas eu prefiro tê-lo usando o nosso servidor smtp se eu puder.

questionAnswers(9)

yourAnswerToTheQuestion