我发现很多关于Jenkins如何配置邮件的博文都是基于老版Jenkins来写的,这样会导致测试邮件能发,但是实际邮件却收不到。所以我重新整理了一份关于新版Jenkins如何配置邮件的文章,希望有所帮助。

在Jenkins上设置邮件提醒可以使我们在定时执行完测试任务之后,随时查看测试运行情况。

本文以QQ邮箱为例,其他邮箱的话大同小异。

话不多说,直接上流程,按照流程一步步来,绝对没问题。

1. 在jenkins首页点击manage jenkins, 忽略页面顶部的提示信息,然后选择manage plugins

2. 点击"Available', 搜索并安装邮件相关插件,选择install without restart 即可(如果是已安装的话可以在installed里搜一下,有就行)

HTML publisher

Email Extension

Email Extension Template

3. 等待插件安装完成,然后点击manage jenkins,再选择configure system

4. 在系统管理员邮件地址中,输入发件箱的地址

5. 发件箱需要授权,先讲一下授权操作:

首先登录发件箱的QQ邮箱,如何点击设置,选择账户。

然后在下面找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启IMAP/SMTP服务,第一次开启的时候会提示你用密码手机发送一份短信,在验证通过之后就会在页面上获取授权码,妥善保存好授权码(当然如果弄丢了,点击下面的生成授权码可以重新生成一个新的)

点击“什么是IMAP,它又是如何设置”,在跳出的页面底部可以找到SMTP服务器地址

jenkins 收到的邮件是乱码 jenkins收不到邮件_jenkins

jenkins 收到的邮件是乱码 jenkins收不到邮件_运维_02

6. 找到Extended E-mail Notification,在SMTP server中输入smtp.qq.com,在SMTP Port中输入465

jenkins 收到的邮件是乱码 jenkins收不到邮件_jenkins 收到的邮件是乱码_03

7. 点击Advanced,点击Add,选择Jenkins

jenkins 收到的邮件是乱码 jenkins收不到邮件_jenkins 收到的邮件是乱码_04

8. 在弹出的窗口中,输入:

Username:发件箱的地址

Password:发件箱的授权码!!切记,这个填的不是邮箱的密码

其他可以不填

最后点击Add

然后Credentials看一下有没有选择刚刚添加的邮箱,如果没有就选择一下。

jenkins 收到的邮件是乱码 jenkins收不到邮件_运维_05

9. 勾选“Use SSL”

jenkins 收到的邮件是乱码 jenkins收不到邮件_运维_06

10. Default user e-mail suffix 输入@qq.com

jenkins 收到的邮件是乱码 jenkins收不到邮件_Jenkins_07

jenkins 收到的邮件是乱码 jenkins收不到邮件_HTML_08

11. 点击上述图中Advanced,查看Charset默认是UTF-8

12. Default Content Type选择HTML(text/html): 发送有格式的邮件

13. Default Recipients 填一个默认的收件人地址(可以和发件箱同一个,不过建议用另一个号)

jenkins 收到的邮件是乱码 jenkins收不到邮件_Jenkins_09

14. 勾选Enable Debug Mode:这时如果发送不出邮件,日志中会包含详细的错误信息

jenkins 收到的邮件是乱码 jenkins收不到邮件_Jenkins_10

15. 点击按钮Default Triggers(按需求勾选)

jenkins 收到的邮件是乱码 jenkins收不到邮件_HTML_11

勾选Always:不论测试是否执行失败,总是发送邮件

勾选Failure - Any:任何一条测试用例失败,都发送邮件

16. 其他没有提到的可不填,维持默认就好,Default Content是默认的邮件模板,可以在项目中填写,所以这里就不填了。

17. 在E-mail Notification下,SMTP server输入smtp.qq.com,Default user e-mail suffix输入@qq.com

18. 点击Advanced,然后勾选Use SMTP Authentication

用户名:输入发件箱

密码:输入发件箱的授权码!!!

19. 勾选Use SSL

20. SMTP Port 输入465

21. 测试:勾选Test configuration by sending test e-mail,输入收件箱,然后点击Test configuration,如果看到“Email was successfully sent” 说明前面的配置成功了。点击Save.

jenkins 收到的邮件是乱码 jenkins收不到邮件_运维_12

备注:

修改完授权码后,再次测试,很可能又会收到如下报错:

java.net.SocketException: Connection closed by remote host

这是因为我们还需要在设置Jenkins Location中配置系统管理员邮件地址,此地址要和邮件通知中的用户名一致。

jenkins 收到的邮件是乱码 jenkins收不到邮件_jenkins 收到的邮件是乱码_13

22. 打开创建的项目,点击Configure

jenkins 收到的邮件是乱码 jenkins收不到邮件_Jenkins_14

jenkins 收到的邮件是乱码 jenkins收不到邮件_jenkins 收到的邮件是乱码_15

23. 在Post-build Actions中选择Publish HTML report,点击Add

jenkins 收到的邮件是乱码 jenkins收不到邮件_运维_16

HTML directory to archive:输入测试报告所在的文件夹路径

Index page[s]:输入测试报告的名字

24. 在Post-build Actions中选择Editable Email Notification

jenkins 收到的邮件是乱码 jenkins收不到邮件_运维_17

Project Recipient List:填写收件人

Content Type:选择HTML(text/html)

Default Subject:输入邮件的默认标题

Default Content:复制进邮件的模板(是一大段html代码)

25. 到此,所有的配置就完成了,点击save。去运行项目然后登录收件箱收邮件。