专栏首页浪子编程走四方Jenkins实现自动化邮件发送踩坑记录

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 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(邮件发送者)账号不一致。

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

项目配置

接下来,我们创建一个任务测试发送邮件。至于具体的配置这里省略带过,直接记录配置邮件的地方。

这里面就是针对该项目的具体配置信息,上面我们提交到系统配置,属于全局配置。如果这里没有配置,则默认走全局配置。大致的配置信息和全局配置都是相同的作用,可以根据不同的任务,自行配置即可。

邮件测试

最后配置完毕,当提交代码待仓库后,使用webhooks自动触发构建,登录邮箱就可以查看到下面的一些构建基础信息了。如果邮件需要更多的配置信息,直接到任务中去配置即可。

本文分享自微信公众号 - 卡二条的技术圈(qq1005349393),作者:浪子编程走四方

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nginx如何实现一个域名访问多个项目

    最近在个人的多个项目部署中遇到这样一个问题,一个域名如何实现多个项目的访问。因为不想自己单独去申请域名证书和域名配置,便想到了这个方案,结合Nginx的loca...

    A梦多啦A
  • 个人常用设计类网站汇总分享

    由于自己偶尔会写一些微信公众号的文章,同时在学习ps的过程中也遇到一些不错的网站。这里总结下来,希望对大家有帮助。推荐的只是网站,有大量优秀的客户端设计工具,后...

    A梦多啦A
  • 使用docker搭建一套开发环境全家桶

    DNMP(Docker + Nginx + MySQL + PHP7/5 + Redis)是一款全功能的LNMP一键安装程序。支持的服务丰富、功能强大、使用简单...

    A梦多啦A
  • vue3.0 Composition API 上手初体验 神奇的 setup 函数 (四) 计算属性 computed

    上一讲中,我们讲解了 vue 3.0 的生命周期,我相信大家已经了然了。在 vue 中,计算属性 computed 是非常常用的。那么,在 vue 3.0 中,...

    FungLeo
  • LintCode 四数之和题目分析代码

    给一个包含n个数的整数数组S,在S中找到所有使得和为给定整数target的四元组(a, b, c, d)。

    desperate633
  • Python实现音频倒放

    来说说 Python 实现倒放音频的过程。直接在网上搜相关内容,的确有现成的音频处理库 pydub,体验了一下:特!别!好!用!

    Crossin先生
  • ELK学习笔记之Logstash详解

    官方介绍:Logstash is an open source data collection engine with real-time pipelining...

    Jetpropelledsnake21
  • 基于LVS-NAT模型的负载均衡调度

    首先,需要确定的一点是,LVS-NAT模型中,所有的网络流量都需要流经DS,即包括请求报文和回应报文。当Client端从浏览器或其他客户端请求http或其它网络...

    用户1456517
  • jface databinding: 创建readonly(只读)可观察对象(observable)

    java与C++有一点不同:C++有const关键字,使用const关键字,用于指定一个参数、成员变量或函数是只读不可修改的,通过const参数让对象成为rea...

    用户1148648
  • WordPress Plugin Quizlord 2.0 XSS漏洞复现与分析

    WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管...

    FB客服

扫码关注云+社区

领取腾讯云代金券