2013-11-25 6 views
26

मैं smtp ईमेल अधिसूचना सेट अप करने का प्रयास कर रहा हूं। मैं देख सकता था कि जीमेल भाग ठीक काम करता है। मैं अपने कार्यालय 365जेनकींस में एसएसएल से टीएलएस तक सुरक्षा प्रकार को कैसे बदला जाए?

एसएमटीपी सर्वर = smtp.office365.com

हम एसएसएल कॉन्फ़िगर नहीं किया है के लिए यह कॉन्फ़िगर करना चाहते हैं। इसके बजाय हम टीएलएस का उपयोग करते हैं। मैं जेनकींस में टीएलएस कैसे सेट कर सकता हूं? केवल एक चेक बटन है जो SSL का उपयोग करने का सुझाव देता है या नहीं। अगर मैं इसे अक्षम करता हूं तो इसका उपयोग क्या होगा?

मैं निम्नलिखित त्रुटियाँ प्राप्त -

Failed to send out e-mail 

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:499) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    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:120) 
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) 
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631) 
    at org.kohsuke.stapler.Stapler.service(Stapler.java:225) 
    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:96) 
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88) 
    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.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:46) 
    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: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.runWorker(ThreadPoolExecutor.java:1146) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:679) 
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 
    at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:542) 
    at sun.security.ssl.InputRecord.read(InputRecord.java:374) 
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:850) 
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1190) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1217) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1201) 
    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) 
    ... 63 more 
+0

क्या आपको कोई समाधान मिला? मैंने बिना किसी सफलता के इस प्रश्न और संबंधित लिंक पर सब कुछ करने की कोशिश की। – javydreamercsw

उत्तर

-5

एसएसएल और टीएलएस, कर रहे हैं प्रभावी ढंग से, एक ही।

+0

मैंने लॉग जोड़े हैं, कृपया सुझाव दें कि यहां क्या करने की आवश्यकता है। –

+0

त्रुटि संदेश संकेत के रूप में, यह एक सादा टेक्स्ट पोर्ट है, न कि एक टीएलएस पोर्ट। मैंने इसे जोड़ने का प्रयास किया, और यह मुझे सादा पाठ में भेजा: "* 220 BY2PR03CA036.outlook.office365.com माइक्रोसॉफ्ट ईएसएमटीपी मेल सेवा सोम में तैयार, 25 नवंबर 2013 09:47:06 + 0000 *"। (यह टीएलएस से कनेक्शन को अपग्रेड करने का समर्थन करता है, लेकिन यह नहीं है कि चेकबॉक्स क्या है।) –

+0

जब मैंने ईमेल सेटिंग्स द्वारा चेक किया, तो यह कहता है कि मेरे पास टीएलएस समर्थन एसएसएल नहीं है। मैं बस यहां सभी सेटिंग्स की प्रतिलिपि बना रहा हूं। लेकिन, मैं जेनकींस में टीएलएस नहीं चुन सकता जो कि एकमात्र समस्या है? –

1

उत्तर के लिए धन्यवाद, मुझे यह तय हो गया। सबसे पहले, जावा केवल डिफ़ॉल्ट रूप से एसएसएल द्वारा समर्थित है। इसलिए, जेनकिंस जावा विकल्पों को टीएलएस सक्षम करने के लिए सेट करने की आवश्यकता है। इसके बाद, जेनकींस सेवा शुरू करें। इस अनुमति समस्या की समस्या तब होती है जब आप जेनकिंस स्थान कॉलम के अंतर्गत सिस्टम व्यवस्थापक ई-मेल पता नहीं देते हैं। यह जीमेल smtp के लिए नहीं होता है। मुझे लगता है कि कार्यालय 365 में उच्च सुरक्षा है। इसलिए, यह केवल पंजीकृत उपयोगकर्ता को ईमेल भेजने की अनुमति देता है।

+0

क्या आप टीएलएस को सक्षम/कैसे सक्षम करते हैं, इस बारे में कुछ विवरण प्रदान कर सकते हैं? और यह काम करने के लिए कोई अन्य tweaks। मुझे smtp.office365.com के साथ एक ही समस्या है। धन्यवाद! – joshgo

+0

कृपया इस http://www.tune2wizard.com/linux-jenkins/ का पालन करें। यह फेडोरा कोर -16, 1 9 पर परीक्षण किया जाता है। यदि आपको मेरा जवाब पसंद है, तो कृपया सराहना करें। –

12

कार्यालय 365 को वास्तव में टीएलएस के साथ प्रमाणीकृत एसएमटीपी की आवश्यकता है। जेनकिंस कॉन्फ़िगरेशन में SSL विकल्प मदद नहीं करता है, इसे अनचेक छोड़ दें। स्टैंडअलोन जेनकींस स्थापना फ़ोल्डर से jenkins.xml में रख लिए

-Dmail.smtp.starttls.enable=true 

और बिलाव के लिए स्टार्टअप स्क्रिप्ट को अपडेट करने या विंडोज पर ट्रे आइकन का उपयोग करें: इसके बजाय जेनकींस वी एम के लिए निम्न प्रणाली संपत्ति जोड़ें।

फिर जेनकींस को पुनरारंभ करें और आप जाने के लिए अच्छे हैं।

+3

एक आकर्षण की तरह काम करता है - धन्यवाद! लिनक्स उपयोगकर्ताओं के लिए, उपरोक्त सेटिंग को अपने/etc/default/jenkins फ़ाइल में JAVA_ARGS var में जोड़ें। – killthrush

21

जेनकींस विंडोज, खुला jenkins.xml पर के लिए और संशोधित तर्क नोड

-Xrs -Xmx256m -Dhudson.lifecycle = hudson.lifecycle.WindowsServiceLifecycle -Dmail.smtp.starttls.enable = सच जार "% आधार% \ jenkins.war "--httpPort = 8080

+0

बहुत अच्छा काम करता है - समाधान के रूप में चिह्नित किया जाना चाहिए – miro

+0

हाँ, मेरे लिए भी काम किया, निश्चित रूप से उत्तर। –

6

यहां मेरे लिए सेंटोस पर जेनकींस चलाने के लिए काम किया गया है। /etc/sysconfig/jenkins संपादित करें और विकल्प जोड़ने -Dmail.smtp.starttls.enable=true, JENKINS_JAVA_OPTIONS को

अगर वहाँ कुछ अन्य चर पहले से ही है, यह करने के लिए -Dmail.smtp.starttls.enable=true संलग्न, तो यह नीचे के समान होना चाहिए:

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dmail.smtp.starttls.enable=true" 

पुनः आरंभ जेनकींस service jenkins restart साथ और आप होना चाहिए

0

मेरे लिए जावा विकल्प के लिए "-Dmail.smtp.starttls.enable = true" जोड़ने के लिए बॉक्स के बाहर काम नहीं किया गया - जेनकिंस एसएमटीपी से कनेक्ट करने का प्रयास कर रहा था, लेकिन लॉग इन/var/log/maillog (CentOS 7.2) मैंने देखा है कि कनेक्शन estab है लुप्त हो गया और फिर कुछ समय बाद (संभावित रूप से समय के बाद) पोस्टफिक्स ने रिपोर्ट की है "{host_name} से कनेक्ट होने के बाद खो गया कनेक्शन"। मैंने टीएलएस के माध्यम से भी कनेक्शन किया है। कुछ शोध के बाद मैंने अलग-अलग पोर्ट - - डिफ़ॉल्ट 465 और वॉयला के बजाय कोशिश करने का निर्णय लिया है! अंततः परीक्षण ईमेल भेजा गया था।

7

मैं उबंटू सर्वर 14.04 के तहत जेनकींस चलाता हूं और मुझे पिछले उत्तर को अनुकूलित करना था जो सेंटोस वितरण को संबोधित करता है।

सबसे पहले, अधिकांश लिनक्स वितरण के तहत, जेनकींस के लिए कॉन्फ़िगरेशन फ़ाइल /etc/default/jenkins (see this link) पर स्थित है। मैं जेनकींस 2.7 का उपयोग करता हूं और मैं मौजूदा सेटिंग चर JAVA_ARGS पर -Dmail.smtp.starttls.enable=true जोड़ता हूं। अंत में, मैंने इसके साथ समाप्त किया:

JAVA_ARGS="-Djava.awt.headless=true -Dmail.smtp.starttls.enable=true" 
संबंधित मुद्दे