GitLab Mail Receiver

让 GitLab 支持邮件回复功能
授权协议 MIT
开发语言 Ruby
所属分类 程序开发、 其他开发相关
软件类型 开源软件
地区 国产
投 递 者 聂煜
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

gitlab-mail-receiver 允许用户的GitLab支持电子邮件接收和解析电子邮件内容,并找到Issue / MergeRequest来创建回复的方式。

功能

  • 支持 POP/IMAP 协议;

  • 独立进程启动服务,定期检测邮件处理回复;

  • 收到邮件回复后会做的内容解析,定位 Issue/MergeRequest 并自动创建回复;

处理流程

                 /-->  [ Notify ] ----------------> [Mail Server] <---> [Mail Client]
  { GitLab } ---/                                         ^
       ^                                                  |
       |-------< [ gitlab-mail-receiver ] <---- check --> |

原理

这个 Gem 会往 GitLab 的 Mailer Notify 里面覆盖几个函数,将邮件的 reply_to 改成类似这样 your-mail+group/project!100@server.com, 其中 group/project 是项目名称,!100 表示 Issue 编号 100。

这样用户收到的 GitLab 通知,回复地址将会带有 Issue 信息,邮件其实是回发到 you-mail@server.com,gitlab-mail-receiver 这边将会解析出来,对应到 Issue/MergeRequest。

所以,你需要你的邮件服务器支持 + 号(PS: Gmail 是支持的)

  • Shell脚本—Gitlab代码库备份 应公司要求,需每月对代码库进行备份刻录光盘进行保存,故想到写一个自动备份的脚本,并通过邮件进行通知。 因公司gitlab代码库是通过docker进行启动,故备份需对代码库和docker镜像同步进行备份,备份脚本内容如下 #!/usr/bin/bash ## gitlab backup ## by shanhai gitlab_docker_id=`docke

  • 描述: 由于需求不一致,有的时候需要给所有应用商店打包,有的时候需要指定应用商店打包,所以在gitlab-ci文件里面需要将构建单独的应用商店的job全部列出来,在加上构建所有应用商店的job,一共13个job。打包完apk需要上传到oss上,并给相关的人员发送邮件,这部分用Python来实现的。 编写gitlab-ci.yaml文件 gitlab-ci.yaml文件如下: variables:

 相关资料
  • 回顾 在近来的几篇教程中,我们一直在与数据库打交道。 今天我们打算让数据库休息下,相反我们今天准备完成网页应用程序中一项重要的功能:能够给用户发送邮件。 在我们小型 microblog 应用程序,我们将要实现一个与邮件有关的功能,我们将会给用户发送一封邮件当他或者她被人关注的时候。实现邮件有很多方式,因此我们需要设计一个通用的框架,以便重用。 安装 Flask-Mail 幸运地,Flask 已经存

  • 本文翻译自The Flask Mega-Tutorial Part X: Email Support 这是Flask Mega-Tutorial系列的第十部分,在其中我将告诉你,应用如何向你的用户发送电子邮件,以及如何在电子邮件支持之上构建密码重置功能。 现在,应用在数据库方面做得相当不错,所以在本章中,我想抛开这个主题,开始添加发送电子邮件的功能,这是大多数Web应用必需的另一个重要部分。 为什

  • 本文向大家介绍使用Spring的JAVA Mail支持简化邮件发送功能,包括了使用Spring的JAVA Mail支持简化邮件发送功能的使用技巧和注意事项,需要的朋友参考一下 闲来无事,翻看《Spring in Action》,发现Spring集成了对JAVA Mail的支持,有点小激动的看了一遍,嗯,话说真的简单了很多。 Spring的邮件发送的核心是MailSender接口,在Spring3.

  • 本文向大家介绍使用beaker让Facebook的Bottle框架支持session功能,包括了使用beaker让Facebook的Bottle框架支持session功能的使用技巧和注意事项,需要的朋友参考一下 bottle是一个小型web框架,很小只有一个文件,但功能确很强大,学起来也简单,简单和小巧的同时也有很多不足,某些功能支持还不是很完善,比如session.但是也有它自身的好处,我们可以

  • 编辑:因为人们仍然从google登陆这里,你必须在OpenGL环境中调用每一个OpenGL方法。因此,在使用GL做任何事情之前,请确保您在一个上下文中。 我试图用lwjgl在我的屏幕上呈现一个简单的文本,但是每次都失败了!当我启动游戏时,它崩溃了,并向我抛出错误: 我需要使用现代openGL还是什么?我真的需要帮助

  • 本文向大家介绍让VIM支持Nginx .conf文件语法高亮显示功能的方法,包括了让VIM支持Nginx .conf文件语法高亮显示功能的方法的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要介绍了关于让VIM支持Nginx .conf文件语法高亮显示功能的方法,下面话不多说,来一起看看详细的介绍吧。 我们在编辑配置 Nginx 的配置文件(.conf)时,由于他没有高亮的功能,但是 Ngi

  • Libevent本身不是多线程安全的,在多核的时代,如何能充分利用CPU的能力呢,这一节来说说如何在多线程环境中使用libevent,跟源代码并没有太大的关系,纯粹是使用上的技巧。 1 错误使用示例 在多核的CPU上只使用一个线程始终是对不起CPU的处理能力啊,那好吧,那就多创建几个线程,比如下面的简单服务器场景。 1 主线程创建工作线程1; 2 接着主线程监听在端口上,等待新的连接; 3 在线程

  • 问题内容: Node.js是否已经支持=>函数关键字别名?如果是,请从哪个版本开始?如何启用此语言扩展? 成为 问题答案: 简而言之:是的,自版本4.4.5起,Node.js中就很好地支持箭头功能。 完全正确的支持从版本6开始。最初的支持是从v0.12开始引入的,但是它非常不完整,默认情况下处于禁用状态,直到v4.0变得更好为止。