文章简介
本文分享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主动触发构建,登录邮箱就能够查看到上面的一些构建根底信息了。如果邮件须要更多的配置信息,间接到工作中去配置即可。