Jenkins SMTP TLS

Próbuję skonfigurować Jenkinsa, aby używał serwera SMTP naszej firmy do wysyłania powiadomień e-mail o kompilacji. Używamy TLS jako metody szyfrowania na porcie 587. Nie wydaje mi się jednak, aby powiadomienie e-mail działało poprawnie.

Oto mój plik Hudson.Tasks.Mailer.xml, dzięki czemu możesz zobaczyć moją konfigurację (usunąłem użytkownika autoryzacji SMTP i hasło i zmieniłem nieco smtpHost na wszelki wypadek)

<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>

Wygląda na to, że jest to znany problem zhttp://issues.hudson-ci.org/browse/HUDSON-2206

Nie jestem zbyt dobrze zaznajomiony z Apple OS (który jest maszyną, na której działa Jenkins), ale pomyślałem, że mogę rozwiązać ten problem za pomocą wspomnianego obejścia. Nie byłam jednak do końca pewna, gdzie umieścić to obejście, więc spróbowałam to umieścić tutaj: / 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

To chyba nie rozwiązało problemu. Widzę to połączenie w konsoli, gdy uruchamiany jest Jenkins, ale gdy próbuję testowego e-maila konfiguracyjnego, pojawia się następujący błąd:

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)

Jakieś pomysły na to, czego jeszcze mogę spróbować? Próbowałem zmienić konto e-mail, aby użyć serwera smtp gmaila i to działa dobrze, ale wolałbym, aby korzystał z naszego serwera smtp, jeśli mogę.

questionAnswers(9)

yourAnswerToTheQuestion