现在的位置: 首页 > 综合 > 正文

自用Git提交后自动发送邮件的脚本

2013年10月28日 ⁄ 综合 ⁄ 共 812字 ⁄ 字号 评论关闭

首先是下载这个7zpost-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!

抱歉!评论已关闭.