【发布时间】:2015-11-10 16:22:55
【问题描述】:
在 Jenkins 中,有一个插件可以在作业针对各种触发器运行时发送通知。这个插件依赖于在 Jenkins 全局配置中设置邮件服务器。
可编辑电子邮件通知插件 - 如果邮件服务器不可访问(端口 25)或由于某种原因如果编辑电子邮件通知发布操作失败(对于我们在作业的配置)。
现在,如果我有一个构建/部署作业成功完成(在做主要工作时)但在发送电子邮件部分失败(由于某些邮件服务器问题),那么为什么它将整个作业标记为失败。
电子邮件触发操作不应将构建标记为 FAILED(如果电子邮件触发部分由于邮件服务器问题而失败)并且 Jenkins 应该将电子邮件排队(以便在邮件服务器恢复后稍后发送电子邮件/ up/online 或 post 操作不应该对工作状态产生任何影响)。如果电子邮件触发器失败,只需回显 - 电子邮件发送操作失败,因为邮件服务器由于这个/那个(详细消息)而出现问题。
我怎样才能摆脱这种情况。我有一个长期运行的工作,我不想重新运行它(如果我知道邮件服务器重新联机),即使我重新运行该工作,我也不能 100% 确定邮件服务器是否会启动/运行。
只是想看看我们是否可以在编辑电子邮件通知中设置一个选项,以便在电子邮件通知步骤失败时不将构建作业标记为失败(即对该插件的增强),或者我可以通过其他方式摆脱这种情况。
17:15:55 ERROR: Could not send email as a part of the post-build publishers.
17:15:55 javax.mail.MessagingException: Could not connect to SMTP host: my-mailhost.company.com, port: 25;
17:15:55 nested exception is:
17:15:55 java.net.ConnectException: Connection refused
17:15:55 at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
17:15:55 at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
17:15:55 at javax.mail.Service.connect(Service.java:295)
17:15:55 at javax.mail.Service.connect(Service.java:176)
17:15:55 at javax.mail.Service.connect(Service.java:125)
17:15:55 at javax.mail.Transport.send0(Transport.java:194)
17:15:55 at javax.mail.Transport.send(Transport.java:124)
17:15:55 at hudson.plugins.emailext.ExtendedEmailPublisher.sendMail(ExtendedEmailPublisher.java:306)
17:15:55 at hudson.plugins.emailext.ExtendedEmailPublisher._perform(ExtendedEmailPublisher.java:281)
17:15:55 at hudson.plugins.emailext.ExtendedEmailPublisher.perform(ExtendedEmailPublisher.java:233)
17:15:55 at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
17:15:55 at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:772)
17:15:55 at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:736)
17:15:55 at hudson.model.Build$BuildExecution.cleanUp(Build.java:192)
17:15:55 at hudson.model.Run.execute(Run.java:1778)
17:15:55 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
17:15:55 at hudson.model.ResourceController.execute(ResourceController.java:88)
17:15:55 at hudson.model.Executor.run(Executor.java:234)
17:15:55 Caused by: java.net.ConnectException: Connection refused
17:15:55 at java.net.PlainSocketImpl.socketConnect(Native Method)
17:15:55 at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
17:15:55 at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
17:15:55 at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
17:15:55 at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
17:15:55 at java.net.Socket.connect(Socket.java:519)
17:15:55 at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:286)
17:15:55 at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
17:15:55 at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)
17:15:55 ... 17 more
17:15:55 Finished: FAILURE
【问题讨论】:
标签: email jenkins notifications jenkins-plugins status