Centos远程Git服务器上配置Gitblit邮件通知

  • 1、远程登陆阿里云服务器
  • 2、修改配置defaults.properties
  • 3、配置Web端GitBlit
  • **(1) 添加hooks勾子**
  • **(2)添加邮件列表(多个邮件用空格或逗号隔离)**
  • 4、阿里云后台放开465端口
  • 5、测试
  • 6、通过Log查看收不到邮件问题
  • **问题1**
  • **问题2**
  • **问题3** 邮件被拒发


本文主要讲述在阿里云Centos上部署Gitblit 的QQ邮箱的邮件通知。
:我的Gitblit路径为 /opt/gitblit/

1、远程登陆阿里云服务器

用工具如SourceCRT、Xshell等

2、修改配置defaults.properties

主要配置以下内容:

    mail.server = smtp.qq.com            //发送服务器域名

    mail.port = 465                              //发送服务器端口

    mail.smtps = true                          //使用SSL加密

    mail.starttls = true                         //使用TLS加密

    mail.username = ethan-xxx@qq.com      //用于发送邮件的邮箱全名

    mail.password = ruvminkokexxxxxx           //发送的邮箱的授权码,注意,不是常用的登陆密码,(如何获取授权码?)

    mail.fromAddress = ethan-xxx@qq.com   //用于发送邮件的邮箱

命令行如下:

cd /opt/gitblit/data/      

vim defaults.properties    //需要会使用vim编辑器

//配置上方内容,:wq保存退出

reboot    //不知道如何重启gitblit服务,干脆直接重启服务器

如图:

gitlab的邮件差异和补丁 gitlab邮件通知_邮件通知

3、配置Web端GitBlit

(1) 添加hooks勾子

在post-receive脚本添加sendmail勾子,切记点“保存”;(正常情况配置完2点之后, 会继承sendemail,以防万一,还是将sendmail添加到Seleted框)

gitlab的邮件差异和补丁 gitlab邮件通知_邮件通知_02

(2)添加邮件列表(多个邮件用空格或逗号隔离)

gitlab的邮件差异和补丁 gitlab邮件通知_Gitblit_03

4、阿里云后台放开465端口

步骤:进入实例 -> 本实例安全组 -> 配置规则 -> 添加安全组规则

gitlab的邮件差异和补丁 gitlab邮件通知_Gitblit_04

5、测试

//将本地修改版本Push到远程Git服务器

git add .

git commit

git push -u origin master

执行push后,片刻后查看3.(2)邮件列表添加的邮箱有无收到邮件;

6、通过Log查看收不到邮件问题

vim /opt/gitblit/data/logs/gitblit.log    //当天的日志文件是没加时间日期的
问题1
javax.mail.MessagingException: Could not connect to SMTP host: smtp.exmail.qq.com, port: 465, response: -1

原因:未启用ssl
解决方法:检查配置文件是否打开 mail.smtps = true 和 mail.starttls = true

问题2
javax.mail.AuthenticationFailedException: 535 Error: ÇëʹÓÃÊÚȨÂëµÇ¼¡£ÏêÇéÇë¿´: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256

原因:密码校验失败。
解决方法:配置文件中mail.password不能是登陆密码,必须为授权码;根据网址进入QQ邮箱帮助中心查看如何获取授权码。

如图:开启IMAP/SMTP时,会获取授权码;

gitlab的邮件差异和补丁 gitlab邮件通知_邮件通知_05

问题3 邮件被拒发

原因:频繁测试邮件发送,会被QQ邮箱误判为垃圾邮件而拒发

解决方法:被拒发后,需要在邮件客户端输入验证码方可成功发送邮件