Jenkins电子邮件插件:无法连接到SMTP主机:smtp.gmail.com,端口:465;

5sxhfpxr  于 11个月前  发布在  Jenkins
关注(0)|答案(4)|浏览(221)

我正在尝试为Jenkins构建作业配置电子邮件通知(使用Mailer插件)。我在TomEE中使用Jenkins。当我尝试测试我的配置时,我得到了javax.mail.MessagingException:

Failed to send out e-mail

javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection timed out: connect

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:581)

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

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

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

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

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

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

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

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

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

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

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

at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:236)

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

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:731)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

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

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

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

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

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

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:171)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

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

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

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

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

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

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

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

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

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

字符串
原因:java.net.ConnectException:Connection timed out:connect

at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)

at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)

at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)

at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

at java.net.Socket.connect(Socket.java:589)

at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)

at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:286)

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

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

... 82 more


我读到Jenkins的新安全功能,它不允许向非Jenkins用户发送邮件。所以我再次尝试在我的catalina.properties中添加以下内容:

hudson.tasks.MailSender.SEND_TO_UNKNOWN_USERS=true
hudson.tasks.MailSender.SEND_TO_USERS_WITHOUT_READ=true


我还是犯了同样的错误。
任何帮助都会很好。谢谢。

kxe2p93d

kxe2p93d1#

配置电子邮件服务有时会有点令人不安,所以一旦你遇到一些恼人的问题,就像我遇到的一样:
javax. mail.MessagingException:无法连接到SMTP主机:smtp.gmail.com,端口:465;

javax.mail.AuthenticationFailedException:535-5.7.8错误和密码不被接受
如果您遇到这些问题之一,很可能是您不允许电子邮件发件人通过此服务发送电子邮件,因此您所要做的就是登录发件人电子邮件,然后转到邮件设置->安全->启用较不安全的应用程序访问
Click on Turn on access(not recommended) then turn it on
此外,请确保您输入了正确的emailpassword,检查Use SSL并确保SMTP Port为465。
如果错误仍然存在,那么它必须与您的防火墙有关,阻止您使用Jenkins发送SMTP请求,所以为了暂时解决这个问题,我所要做的就是禁用我的Avast antivirus一个小时并测试配置,它工作得很好。
如果你有任何问题,请随时评论这个答案,我很乐意帮助你

fcg9iug3

fcg9iug32#

在我的例子中,在ubuntu 20.04操作系统中运行systemctl restart jenkins命令重新启动Jenkins服务后,一切都运行得很好。

c3frrgcw

c3frrgcw3#

原因:java.net.ConnectException:Connection timed out:connect
这与最近对Mailer插件或Gmail中的设置进行的安全更改没有任何关系-这是说您的Jenkins服务器无法连接到smtp.gmail.com:465。可能是由于您的网络中的某些问题,或防火墙规则,或您的ISP阻止。
您应该与网络管理员联系,询问他们是否有更合适的SMTP服务器。

83qze16e

83qze16e4#

我也有同样的问题。我验证了它实际上不是网络或gmail问题,假设你已经启用了不安全的应用程序(使用app password的密码)。这可能是一个bug或Jenkins的一些配置问题。
以下是我的设置:

SMTP server: smtp.gmail.com
Use SMTP Authentication: true
User Name: [email protected]
Password: password
Use SSL: true||false #tried both with different combination with TLS
Use TLS: true||false
SMTP Port: 587 || 465

字符串
我写了一个小程序,基本上做同样的事情,并运行在同一个服务器上的Jenkins,这工作正常。所以,它不是本地网络防火墙或什么的。
我的程序的设置是:

SMTP server: smtp.gmail.com
Use SMTP Authentication: true
User Name: [email protected]
Password: password
Use SSL: true
SMTP Port: 587


我的最后一项工作是使用Java进行SSL Poking,因为Jenkins是基于Java的。我使用465端口成功,但也无法使用该端口发送。我切换到使用自己的脚本并运行shell脚本。

相关问题