Bagaimana cara mengkonfigurasi Pemberitahuan email Jenkins melalui pandangan?


7

Saya merujuk dokumen ini dan telah mengkonfigurasi MS 365 sebagai berikut tetapi ia melempar pengecualian. Saya sudah mencobanya dengan port 465 tapi tetap saja gagal dan juga tanpa memeriksaUse SSL

masukkan deskripsi gambar di sini

tapi ini melempar pengecualian ini

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?

    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)

    at javax.mail.Transport.send(Transport.java:124)

    at hudson.tasks.Mailer$DescriptorImpl.doSendTestMail(Mailer.java:514)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)

    at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)

    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)

    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)

    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:121)

    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)

    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)

    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)

    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)

    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)

    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)

    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)

    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)

    at org.kohsuke.stapler.Stapler.service(Stapler.java:238)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)

    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)

    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)

    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:123)

    at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)

    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:120)

    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:114)

    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)

    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)

    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)

    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)

    at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)

    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)

    at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)

    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)

    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)

    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)

    at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)

    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)

    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)

    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)

    at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)

    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)

    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)

    at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)

    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)

    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)

    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)

    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)

    at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)

    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)

    at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)

    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)

    at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)

    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)

    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)

    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)

    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)

    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)

    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)

    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)

    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)

    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)

    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)

    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)

    at org.eclipse.jetty.server.Server.handle(Server.java:370)

    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)

    at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)

    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)

    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)

    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)

    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)

    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)

    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)

    at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

    at java.lang.Thread.run(Thread.java:619)

Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?

    at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(InputRecord.java:523)

    at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:355)

    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:789)

    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)

    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1139)

    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123)

    at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:507)

    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)

    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)

    ... 82 more

Jawaban:


4

Anda perlu menambahkan argumen java ini ke baris perintah Jenkins:

-Dmail.smtp.starttls.enable=true      # Starts TLS for Office365 SMTP Authentication

Untuk melakukan ini, Anda harus menemukan skrip yang memulai Jenkins saat startup sistem. Pada Mac, dengan instalasi Jenkins standar, itu akan berada di "/ Library / Application Support / Jenkins / jenkins-runner.sh"

Dan terlihat seperti ini:

#!/bin/bash
#
# Startup script used by Jenkins launchd job.
# Mac OS X launchd process calls this script to customize
# the java process command line used to run Jenkins.
#
# Customizable parameters are found in
# /Library/Preferences/org.jenkins-ci.plist
#
# You can manipulate it using the "defaults" utility.
# See "man defaults" for details.

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

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

javaArgs="-Dfile.encoding=UTF-8"
javaArgs="$javaArgs -Djava.awt.headless=true"
javaArgs="$javaArgs -Dmail.smtp.starttls.enable=true"
javaArgs="$javaArgs  -Dorg.apache.commons.jelly.tags.fmt.timeZone=America/Vancouver"
javaArgs="$javaArgs -Dhudson.DNSMultiCast.disabled=true"
...

Hai @jpadams Saya telah menambahkan argumen JAVA dalam file Jenkins.xml saya tetapi masih masalah yang sama tetap ada <executable> java </executable> <arguments> -Xrs -Xmx256m -Dhudson.lifecycle = hudson.lifecycle.WindowsServiceLifecycle -jar "% BASE % \ jenkins.war "--httpPort = 8080 -Dmail.smtp.starttls.enable = true </arguments> Harap beri tahu saya jika Anda memiliki solusi
Swapnil Kotwal

Catatan: - Saya telah memulai kembali Jenkins tetapi masalah belum terpecahkan :(
Swapnil Kotwal

Pada 465 Port, saya mendapat koneksi timeout javax.mail.MessagingException: Tidak dapat terhubung ke host SMTP: smtp.office365.com, port: 465; pengecualian bersarang adalah: java.net.ConnectException: Waktu habis koneksi: terhubung
Swapnil Kotwal

Argumen Java harus ada sebelum parameter -jar: java -Xrs -Xmx256m -Dmail.smtp.starttls.enable = true -Dhudson.lifecycle = hudson.lifecycle.WindowsServiceLifecycle -jar "% BASE% \ jenkins.war" --httport = 8080
jpadams

Tidak ada keberuntungan yang lebih baik menggunakan ini juga :( Catatan: - Jenkins saya berjalan pada port 8181. Apakah itu alasannya? <arguments> -Xrs -Xmx256m -Dmail.smtp.starttls.enable = true -Dhudson.lifecycle = hudson.lifecycle .WindowsServiceLifecycle -jar "% BASE% \ jenkins.war" --httpPort = 8181 </arguments>
Swapnil Kotwal

4

Akhirnya saya bisa mengetahui masalahnya. Saya telah merindukan

Default user e-mail suffix =  @mycompany.com

Juga, saya tidak dicentang

Use SSL

Menambahkan param berikut dalam file Jenkins.xml dalam direktori root Jenkins

-Dmail.smtp.starttls.enable=true      # Starts TLS for Office365 SMTP Authentication

Ini adalah perubahan terakhir saya

1. SMTP server=smtp.office365.com
2. Default user e-mail suffix=@mycompany.com
3. Use SMTP Authentication (Checked)
4. User Name = my-name@mycompany.com
5. password = ********************

 **6. Use SSL (Un-Checked)**

7. SMTP Port = 587
8. Reply-To Address = my-name@mycompany.com
9. Charset = UTF8

Ini Screen Shot

BOOOM ... !!!


Sebagai catatan tambahan, ingatlah untuk mengatur alamat email Admin Sistem ke alamat email yang sama dengan nama pengguna pemberitahuan email. Jawaban ini membantu
Fabio

Saya mencoba cara yang telah Anda berikan. Namun tidak mampu menyelesaikan masalah tersebut. Apakah saya perlu memulai kembali layanan? Dalam kasus saya, saya menggunakan jenkins blue ocean di dalam wadah saya. Saya memposting pertanyaan terkait di sini- stackoverflow.com/questions/52077290/…
Yogesh Jilhawar

1

untuk memulai jenkins dari penggunaan file perang

java -Dmail.smtp.starttls.enable="true" -jar jenkins.war --httpPort=9090
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.