文章简介
本文分享Jenkins实现邮件发送,安装Jenkins可参考jenkins安装。写这篇文章,是在实际使用Jenkins过程中遇到这样一个问题,当每次Jenkins构建成功或者失败后,需要个人登录Jenkins查看构建结果,同时在构建前做了数据备份,也需要手动的拷贝一份备份文件到本地。为了解决这个问题,便想到了Jenkins的邮件功能。在个人实践中,在每次master分支自动构建前,需要将数据库和代码打包、备份,在Jenkins构建结束之后,将备份的文件发送给对应的负责人。
文章部分细节的地方可能省略待过,因此需要对Jenkins有一定使用的用户比较合适,如果不熟悉的,可以参考上面提交的文章。文章涉及到不准确的信息还望反馈。
大致逻辑
![694e7903caf6f035a68c3262f4bbec93.png](https://img-blog.csdnimg.cn/img_convert/694e7903caf6f035a68c3262f4bbec93.png)
接下来整个流程,也都按照该流程进行演示如何配置。
安装插件
首先点击管理,然后点击插件管理,跳转到插件中心。
![bb38a8c3fe8920868baef4682b66c1db.png](https://img-blog.csdnimg.cn/img_convert/bb38a8c3fe8920868baef4682b66c1db.png)
![c8d077a1a95e1427ff14a4e1f783e79e.png](https://img-blog.csdnimg.cn/img_convert/c8d077a1a95e1427ff14a4e1f783e79e.png)
如果没有安装过email对应的插件,点击可选插件按钮,然后输入email关键词,进行搜索即可。这里我已经安装过了,为了演示选择已安装菜单。
![1d4bc44770e17dd29596f42bc4a72f21.png](https://img-blog.csdnimg.cn/img_convert/1d4bc44770e17dd29596f42bc4a72f21.png)
在安装插件的过程中,需要注意一个版本号。2.73版本的插件有一个bug,就是配置正确却不能发送邮件。建议避开这个版本号。
系统配置
安装好插件之后,接下来就需要进入系统配置。进入系统配置,主要配置两个地方,一个是管理员的邮箱地址,一个是插件的配置信息。
![fd3f4fd6d2b54da0220c09bd19fe7b21.png](https://img-blog.csdnimg.cn/img_convert/fd3f4fd6d2b54da0220c09bd19fe7b21.png)
![d64fef91f6c69eff72c0f30da5f3e43a.png](https://img-blog.csdnimg.cn/img_convert/d64fef91f6c69eff72c0f30da5f3e43a.png)
![a5c63b20b34995c9c5e48a6a47e41490.png](https://img-blog.csdnimg.cn/img_convert/a5c63b20b34995c9c5e48a6a47e41490.png)
![4e28d5f931790133c48177fbeccd93f5.png](https://img-blog.csdnimg.cn/img_convert/4e28d5f931790133c48177fbeccd93f5.png)
记住插件发送邮件的账号一定的和管理员的邮箱账号一致,否者会出现下面错误信息。
错误信息:
com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user
at 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(邮件发送者)账号不一致。
这里其实有点小困惑,邮件配置授权账户,为什么管理员的邮件账号还必须保持一致。按理来说,既然配置了授权用户,就采用配置的授权邮箱进行发送呗。可能是系统使用的管理员邮件发送。这里的配置授权仅仅是为了授权第三方邮箱账户吧。
![81a00efe5b82b36478056f0dbdf8b5c7.png](https://img-blog.csdnimg.cn/img_convert/81a00efe5b82b36478056f0dbdf8b5c7.png)
项目配置
接下来,我们创建一个任务测试发送邮件。至于具体的配置这里省略待过,直接记录配置邮件的地方。
![aa9c6fb99f60ca28dc0f91dc9275f3d2.png](https://img-blog.csdnimg.cn/img_convert/aa9c6fb99f60ca28dc0f91dc9275f3d2.png)
![16a9afa2279ccf20589595821b86fcb8.png](https://img-blog.csdnimg.cn/img_convert/16a9afa2279ccf20589595821b86fcb8.png)
这里面就是针对该项目的具体配置信息,上面我们提交到系统配置,属于全局配置。如果这里没有配置,则默认走全局配置。大致的配置信息和全局配置都是相同的作用,可以根据不同的任务,自行配置即可。
![3e58dd7fe6165d0384ff52a64541100b.png](https://img-blog.csdnimg.cn/img_convert/3e58dd7fe6165d0384ff52a64541100b.png)
![eaee70060acb45f210f9cb825d79f214.png](https://img-blog.csdnimg.cn/img_convert/eaee70060acb45f210f9cb825d79f214.png)
![b498955847d37effeca2f21f2a4aa77a.png](https://img-blog.csdnimg.cn/img_convert/b498955847d37effeca2f21f2a4aa77a.png)
邮件测试
最后配置完毕,当提交代码待仓库后,使用webhooks自动触发构建,登录邮箱就可以查看到下面的一些构建基础信息了。如果邮件需要更多的配置信息,直接到任务中去配置即可。
![b352d43a70f2a9222674c7593b6df4d5.png](https://img-blog.csdnimg.cn/img_convert/b352d43a70f2a9222674c7593b6df4d5.png)