Jenkins SMTP TLS

Estoy intentando configurar a Jenkins para que use el servidor SMTP de nuestra compañía para enviar notificaciones por correo electrónico. Estamos utilizando TLS como el método de encriptación en el puerto 587. Sin embargo, parece que la notificación de correo electrónico no funciona correctamente.

Aquí está mi archivo Hudson.Tasks.Mailer.xml para que pueda ver mi configuración (eliminé el usuario y la contraseña de autenticación SMTP y cambié el smtpHost ligeramente por si acaso)

<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 es un problema conocido, desdehttp://issues.hudson-ci.org/browse/HUDSON-2206

No estoy muy familiarizado con el sistema operativo Apple (que es la máquina que ejecuta Jenkins) pero pensé que podría resolver el problema usando la solución mencionada. No estaba exactamente seguro de dónde poner esa solución, así que intenté ponerlo aquí: / 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

Eso no pareció resolverlo. Puedo ver esa llamada en la consola cuando se inicia Jenkins, pero cuando intento un correo electrónico de configuración de prueba, aparece el siguiente error:

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)

¿Alguna idea sobre qué más puedo probar? He intentado cambiar la cuenta de correo electrónico para usar el servidor smtp de gmail y funciona bien, pero preferiría tenerlo usando nuestro servidor smtp si puedo.

Respuestas a la pregunta(9)

Su respuesta a la pregunta