首先是下载这个post-receive脚本,我稍微做了些修改,支持在.gitconfig中指定邮件发送程序(hooks.sendmail)和发件人信息(hooks.emailfrom)。
脚本下载后放到仓库的hooks目录下,并“chmod a+x post-receive”赋予执行权限。
同时,因为邮件中的项目名称是从仓库目录下的description文件的第一行读取,所以也应该进行相应的修改。
下面是我的.gitconfig配置:
|
[hooks]
# 收件人列表,逗号分隔(必须)
mailinglist = admin@xxx.com, manager@xxx.com
# 指定邮件发送程序(必须)
sendmail =
/usr/bin/msmtp
# 邮件主题前缀
emailprefix =
"[Git] "
# 发件人
emailfrom =
"Git Server"
# 下面一行用于在邮件中包含详细的变更信息
showrev =
"git show -C %s; echo"
|
最后一个showrev选项,可以使得邮件中包含diff生成的详细变更信息,注释掉该选项的话则邮件中只会有commit log。
同时可以看到,我这里使用的是msmtp来发送邮件,网上配置msmtp的文章很多了,有兴趣可以去搜索一下,下面直接把我的配置放上来:
|
# default values for all accounts
defaults
# qq
account qq
host smtp.qq.com
from xxx@qq.com
auth login
user xxx
password 123456
# set default account
account default: qq
|
注意这个是~/.msmtprc的用户配置,auth一项要设置为login,我设为on总是会报”msmtp: cannot use a secure authentication method”的错误。
全部都配置正确后,下次push进来的时候就应该能够收到邮件了,have fun!