gitlab-mail-receiver - 让 GitLab 支持邮件回复功能

jopen 9年前

你们公司在用 GitLab 管理源代码吗?有在大量用 Issue 和 MergeRequest 么?有觉得需要一个想 GitHub 那样直接回复提醒邮件就能在 GitLab 相关内容上面回复么?

gitlab-mail-receiver 就能帮你实现这个需求!

功能

  • 支持 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 是支持的)

使用方法

https://github.com/huacnlee/gitlab-mail-receiver