文章目录

  • 用Mailgun方式在Drone pipeline中集成SMTP邮件通知
    • 前言
    • 在Mailgun中开启SMTP服务
    • 在Drone pipeline中集成邮件通知
    • 小结

用Mailgun方式在Drone pipeline中集成SMTP邮件通知

前言

一般地,集成SMTP邮件通知有3种方式:

  • 方式一:使用公司SMTP Server,邮箱名通常为xxx@company.com
  • 方式二:使用免费邮箱服务商提供的SMTP Server(比如QQ邮箱和163邮箱),邮箱名通常为xxx@qq.comxxx@163.com
  • 方式三:使用专门的SMTP Service (比如Mailgun),邮箱名通常为xxx@yourdomain,此种方式适用于有自己的域名的情况,比如我的域名是 xdevops.cn

本文描述了如何通过Mailgun方式,使用我自己的域名xdevops.cn ,在Drone pipeline中集成SMTP邮件通知。

对使用方式二的情况,可以参考Jenkins 配置邮件通知来开启SMTP服务

在Mailgun中开启SMTP服务

  1. 在 https://www.mailgun.com/ 上注册账号,需要提供信用卡信息,默认选择了免费套餐;
  2. 按照提示进行账号验证;
  3. 添加自定义域名,比如 xdevops.cn;
  4. 按照提示进行域名验证;
  5. 选择使用SMTP方式发送邮件,并记录你的SMTP Username和Password。

Mailgun提供的SMTP服务配置:

  • SMTP Server:smtp.mailgun.org
  • Port:587

Mailgun在账号验证获取短信验证码时有一个bug,需要先选择国家(China),后输入手机号码,否则会出现“Internal error“的错误。

参见:

  • How to Configure Mailgun in WordPress to Send Emails

在Drone pipeline中集成邮件通知

下面是一个完整的Drone 1.0 Pipeline示例。

示例项目的.drone.yml中包含了两个pipeline:ci-java8notifyci-java8流水线用来对一个Java项目进行Maven构建,而notify流水线用来邮件通知整个项目的本次构建结果;

kind: pipeline
type: docker
name: ci-java8volumes:- name: maven_local_repohost:path: /mnt/data/maven_local_reposteps:- name: buildimage: maven:3-jdk-8volumes:- name: maven_local_repopath: /root/.m2commands:- mvn install -s settings.xml -B -U---
kind: pipeline
type: docker
name: notifyclone:disable: truesteps:- name: emailimage: drillster/drone-emailsettings:recipients_only: truerecipients:from_secret: email_recipientssubject: "Drone build: [{{ build.status }}] {{ repo.name }} ({{ repo.branch }}) #{{ build.number }}"host: smtp.mailgun.orgport: 587from: noreply@xdevops.cnusername:from_secret: email_userpassword:from_secret: email_passwordtrigger:status: [success, failure]depends_on: [ci-java8]

下面来说明邮件通知部分:

  • notify流水线中不再需要clone代码仓库;
  • image: drillster/drone-email:使用drillster/drone-email 插件(插件其实也是Docker镜像)来发送邮件;
  • recipients_only: true:只发送给指定邮件收件人,不默认发送给流水线创建人;
  • 在Drone项目设置中,添加Secrets:email_recipientsemail_useremail_password,用来保存邮件收件人、SMTP Username和SMTP Password;
  • 使用from_secret读取Drone项目设置中的Secret;
  • host为SMTP Server,port为SMTP端口,from为邮件发件人地址;
  • 可以自定义邮件标题subject,也可以使用默认标题。
  • 使用trigger来设置无论项目构建是成功还是失败,都要发邮件通知;
  • 使用depends_on来设置,在ci-java8流水线运行完成(无论成功还是失败)后才运行notify流水线进行邮件通知。

drone-email 的官方文档中缺乏对使用secret的描述,而Drone 1.0的流水线语法与之前版本有较大差异,需要综合参考drone官方文档和drone github上面的说明。

如果没有收到邮件,请检查是否被邮箱自动拦截,并放到垃圾箱了。

参见:

  • drone-email官方文档
  • drone-email Github
  • drone-email Github文档
  • 设置和使用drone secret官方文档
  • https://github.com/Drillster/drone-email/issues/27
  • drone pipeline triggers
  • drone pipeline depends_on
  • drone pipeline clone

小结

与Jenkins相比,Drone的文档描述不够完整,刚开始接触时会走一些弯路。

但是Drone的云原生特性,pipeline as docker,plugin as docker,使得可以用Drone更加灵活方便。另外,Drone的pipeline语法更为简洁,除了支持一个pipeline中多个step,还支持一个项目多个pipeline;通过depends_on 可以灵活控制step和pipeline的运行先后顺序和并行(相当于一个流程引擎)。

用Mailgun方式在Drone pipeline中集成SMTP邮件通知相关推荐

  1. Java中实现SMTP邮件服务器-用demo简单粗暴的来发一波邮件了

    1. 邮件开发涉及到的一些基本概念(表示只要代码着急拿来用的童鞋直接翻到后面第2点:)) 在简单粗暴的拿出样例之前,需要先简介一下邮件服务的一些基本概念,以期更好的理解本文.在一个目前常用的邮件系统中 ...

  2. 通用权限管理系统组件 中集成多个子系统的单点登录(网站入口方式)附源码

    通用权限管理系统组件 (GPM - General Permissions Manager) 中集成多个子系统的单点登录(网站入口方式)附源码 上文中实现了直接连接数据库的方式,通过配置文件,自定义的 ...

  3. 在sdk中添加源文件_实用干货 | 一步一步教你在SpringBoot中集成微信刷卡支付

    一:准备工作 使用微信支付需要先开通服务号,然后还要开通微信支付,最后还要配置一些开发参数,过程比较多. 申请服务号(企业) 开通微信支付 开发配置 具体准备工作请参考Spring Boot入门教程( ...

  4. 如何在基于Bytom开发过程中集成IPFS

    本文介绍了基于Bytom开发过程中集成IPFS. step1: 搭建bytom节点 比原相关资料:https://github.com/Bytom-Community/Bytom_Docs 搭建byt ...

  5. rn项目 假如cocoapods_在项目中集成 RN

    在项目中集成 RN 19 Jan 2017 前言 使用 RN 难道要把整个项目都重构一遍么?教程那么多,但是很少能够有把怎么与当前项目结合起来的文章.自己摸索了一遍,记录下来.之后的 RN 之路就由此 ...

  6. Java中集成极光推送实现给Android提送消息通知(附代码下载)

    场景 Android中集成极光推送实现推送消息通知与根据别名指定推送附示例代码下载: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details ...

  7. Android中集成Jpush实现推送消息通知与根据别名指定推送附示例代码下载

    场景 经常会有后台服务向Android推送消息通知的情况. 实现 首先在Android Studio中新建一个Android应用 在Project根目录的build.gradle中配置了jcenter ...

  8. 如何简单的在 ASP.NET Core 中集成 JWT 认证?

    前情提要:ASP.NET Core 使用 JWT 搭建分布式无状态身份验证系统 文章超长预警(1万字以上),不想看全部实现过程的同学可以直接跳转到末尾查看成果或者一键安装相关的 nuget 包 自上一 ...

  9. spring 项目中集成 Protocol Buffers 示例

    http://blog.csdn.net/fangzhangsc2006/article/details/8687388 本文适用于了解spring框架,同时想在spring项目中使用Protocol ...

最新文章

  1. Java学习-jsp内置对象Session
  2. activemq 开启监听_ActiveMQ 消息监听 MessageListener 的使用
  3. Java基础概念性的知识总结
  4. C语言缓冲区(缓存)详解
  5. Docker 概念详解
  6. html 保存xlsx,HTML SaveXLSX按钮防止将数据保存到SlickGrid的XLSX文件中
  7. yii2 关掉php notice,yii2关闭错误提示
  8. mysql 快速插入(insert)多条记录
  9. 5个Python特性 越早知道越好的
  10. java注解返回不同消息,SpringMVC源码剖析5:消息转换器HttpMessageConverter与@ResponseBody注解...
  11. 软件工程复习提纲——第四章
  12. python简介pdf_Py之pdfkit:python的库之pdfkit简介、安装、使用方法详细攻略
  13. 中小企业信息管理 巧用E-Cell
  14. LeetCode:67. 二进制求和(python、c++)
  15. SetWindowLong 除去窗体标题栏
  16. pytorch---nn模块(3)自定义nn 模块
  17. PAT(B) 101-111-1-2014-03-01
  18. centos win xp双系统 安装手记 9660 grldr U盘安装
  19. windows运行库文件
  20. 喜茶奶茶技术培训哪里学?

热门文章

  1. [转载]自动机器学习(AutoML)领域论文合集
  2. 宝塔用ip+端口访问服务器时出现无法访问此网站
  3. win7计算机u盘不显示盘符,U盘不显示磁盘盘符的解决方法
  4. 流畅安装、简单使用annie下载B站视频
  5. Kubernetes 健康状态检查(九)
  6. SG-UAP电网项目开发简介
  7. 牛牛找工作--网易2019实习生招聘编程题
  8. C语言字节对齐规则总结
  9. AI时代的全链路监控(阿里)
  10. Failing package is: mysql-community-client-5.7.38-1.el7.x86_64 GPG Keys are configured as: file://