Tôi đang cố gắng thiết lập Jenkins để sử dụng máy chủ SMTP của công ty chúng tôi để gửi thông báo qua email. Chúng tôi đang sử dụng TLS làm phương thức mã hóa trên cổng 587. Tôi có vẻ không nhận được thông báo qua email để hoạt động bình thường.Jenkins SMTP TLS
Đây là tập tin Hudson.Tasks.Mailer.xml của tôi vì vậy bạn có thể thấy cấu hình của tôi (Tôi đã gỡ bỏ người dùng auth SMTP và mật khẩu và thay đổi smtpHost hơi chỉ trong trường hợp)
<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>
Có vẻ như đây là sự cố đã biết, từ http://issues.hudson-ci.org/browse/HUDSON-2206
Tôi không quen thuộc với Apple OS (máy chạy Jenkins) nhưng tôi nghĩ tôi có thể giải quyết vấn đề bằng cách giải quyết được đề cập. Tôi không chắc chắn chính xác nơi để đặt workaround rằng mặc dù, vì vậy tôi cố gắng đặt nó ở đây: /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
đó không xuất hiện để giải quyết nó. Tôi có thể thấy cuộc gọi đó trong bảng điều khiển khi Jenkins khởi động, nhưng khi tôi thử một email cấu hình thử nghiệm, tôi nhận được lỗi sau:
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)
Bất kỳ ý tưởng nào khác có thể thử? Tôi đã thử chuyển đổi tài khoản email để sử dụng máy chủ SMTP của gmail và hoạt động tốt, nhưng tôi muốn có nó bằng cách sử dụng máy chủ SMTP của chúng tôi nếu tôi có thể.
trong Ubuntu, các tập tin cấu hình Jenkins là trong/etc/default/Jenkins – bruThaler
tôi đã cố gắng mà tôi đang nhận được lỗi sau tại . - Không thể gửi e-mail com.sun.mail.smtp.SMTPSendFailedException: 550 5.7.1 Khách hàng không có quyền gửi như người gửi này tại com.sun.mail.smtp.SMTPTransport.issueSendCommand (SMTPTransport.java:2057) tại com.sun.mail.smtp.SMTPTransport.finishData (SMTPTransport.java:1862) atcom.sun.mail.smtp.SMTPTransport.sendMessage (SMTPTransport.java:1100) tại javax.mail.Transport.send0 (Transport. java: 195) tại javax.mail.Transport.send (Transport.java:124) tại hudson.tasks.Mailer $ DescriptorImpl.doSendTestMail (Mailer.java:499) –
"Khách hàng không có quyền gửi là" làm phiền tôi cho đến khi tôi nhận ra rằng tôi đã không đặt "địa chỉ e-mail quản trị hệ thống" – espenalb