文章简介

本文分享Jenkins实现邮件发送,装置Jenkins可参考jenkins装置。写这篇文章,是在理论应用Jenkins过程中遇到这样一个问题,当每次Jenkins构建胜利或者失败后,须要集体登录Jenkins查看构建后果,同时在构建前做了数据备份,也须要手动的拷贝一份备份文件到本地。为了解决这个问题,便想到了Jenkins的邮件性能。在集体实际中,在每次master分支主动构建前,须要将数据库和代码打包、备份,在Jenkins构建完结之后,将备份的文件发送给对应的负责人。

文章局部细节的中央可能省略待过,因而须要对Jenkins有肯定应用的用户比拟适合,如果不相熟的,能够参考下面提交的文章。文章波及到不精确的信息还望反馈。

大抵逻辑

接下来整个流程,也都依照该流程进行演示如何配置。

装置插件

首先点击治理,而后点击插件治理,跳转到插件核心。


如果没有装置过email对应的插件,点击可选插件按钮,而后输出email关键词,进行搜寻即可。这里我曾经装置过了,为了演示抉择已装置菜单。

在装置插件的过程中,须要留神一个版本号。2.73版本的插件有一个bug,就是配置正确却不能发送邮件。倡议避开这个版本号。

系统配置

装置好插件之后,接下来就须要进入系统配置。进入系统配置,次要配置两个中央,一个是管理员的邮箱地址,一个是插件的配置信息。



记住插件发送邮件的账号肯定的和管理员的邮箱账号统一,否者会呈现上面错误信息。

错误信息:

com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized userat com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1587)Caused: com.sun.mail.smtp.SMTPSendFailedException: 553 Mail from must equal authorized user;  nested exception is:    com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user    at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2057)    at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1580)    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1097)    at javax.mail.Transport.send0(Transport.java:195)    at javax.mail.Transport.send(Transport.java:124)    at hudson.tasks.Mailer$DescriptorImpl.doSendTestMail(Mailer.java:581)    at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)

错误信息的大抵意思就是说,邮箱的受权用户(插件配置的账号)和from(邮件发送者)账号不统一。

这里其实有点小困惑,邮件配置受权账户,为什么管理员的邮件账号还必须保持一致。按理来说,既然配置了受权用户,就采纳配置的受权邮箱进行发送呗。可能是零碎应用的管理员邮件发送。这里的配置受权仅仅是为了受权第三方邮箱账户吧。

我的项目配置

接下来,咱们创立一个工作测试发送邮件。至于具体的配置这里省略待过,间接记录配置邮件的中央。


这外面就是针对该项目标具体配置信息,下面咱们提交到系统配置,属于全局配置。如果这里没有配置,则默认走全局配置。大抵的配置信息和全局配置都是雷同的作用,能够依据不同的工作,自行配置即可。

邮件测试

最初配置结束,当提交代码待仓库后,应用webhooks主动触发构建,登录邮箱就能够查看到上面的一些构建根底信息了。如果邮件须要更多的配置信息,间接到工作中去配置即可。