1. 程式人生 > >自用Git提交後自動傳送郵件的指令碼

自用Git提交後自動傳送郵件的指令碼

首先是下載這個7zpost-receive指令碼,我稍微做了些修改,支援在.gitconfig中指定郵件傳送程式(hooks.sendmail)和發件人資訊(hooks.emailfrom)。

指令碼下載後放到倉庫的hooks目錄下,並“chmod a+x post-receive”賦予執行許可權。

同時,因為郵件中的專案名稱是從倉庫目錄下的description檔案的第一行讀取,所以也應該進行相應的修改。

下面是我的.gitconfig配置:

[hooks] # 收件人列表,逗號分隔(必須) mailinglist = [email protected], [email protected]
# 指定郵件傳送程式(必須) 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 [email protected] 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!