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

GIT自动发邮件功能配置

2013年10月12日 ⁄ 综合 ⁄ 共 2464字 ⁄ 字号 评论关闭

原来配置过SVN版本控制在项目成员提交CODE的时候,会自动发邮件给团队成员,公司在使用GIT之后,同样有这样需求,如下是配置方法.

GIT的邮件通知是通过MSMTPMUTT来发信的,所以首先需要配置MSMTPMUTT环境。

 

1、  下载安装MSMTP

wget http://cdnetworks-kr-1.dl.sourceforge.net/project/msmtp/msmtp/1.4.24/msmtp-1.4.24.tar.bz2

tar jxvf msmtp-1.4.24.tar.bz2

cd msmtp-1.4.24

./configure --prefix=/usr/local/msmtp

make

make install

 

ln /usr/local/msmtp/bin/msmtp /bin/msmtp

 

查看MSMTP的配置文件目录,执行如下命令:

[root@bogon msmtp]# msmtp --version

msmtp version 1.4.24

Platform: x86_64-unknown-linux-gnu

TLS/SSL library: OpenSSL

Authentication library: built-in

Supported authentication methods:

plain cram-md5 external login

IDN support: enabled

NLS: enabled, LOCALEDIR is /usr/local/msmtp/share/locale

Keyring support: none

System configuration file name: /usr/local/msmtp/etc/msmtprc  #此为改软件的配置文件路径

User configuration file name: /root/.msmtprc

 

Copyright (C) 2010 Martin Lambers and others.

This is free software.  You may redistribute copies of it under the terms of

the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.

There is NO WARRANTY, to the extent permitted by law.

创建目录:

mkdir -p /usr/local/msmtp/etc/

创建配置文件

vi /usr/local/msmtp/etc/msmtprc

defaults

account duhaitao

host mail.ecworld.net

from gitmail@ecworld.net

auth login

user gitmail

password pass

tls off

account default : gitmail

logfile /var/log/msmtp.log

 

2、  下载安装MUTT

此软件是在系统安装ISO里面找到的,也可以通过网上下载进行安装。

rpm –ihv mutt-1.4.2.2-3.0.2.el5.x86_64.rpm

安装好之后,会在/etc目录下面生成/Muttrc文件,修改/etc/Muttrc文件:

# for add Muttr

set sendmail="/usr/local/msmtp/bin/msmtp"

set realname="Data Report"

set editor="vi"

set from=auto_mail@ecworld.com

set envelope_from=yes

 

一切就绪之后就可以测试是否成功。

echo 'test'|mutt -s "testabc" duhaitao@sian.com -c duhaitao@ecworld.net -a a.tgz

没有报错,就可以收到邮件了。

 

3、  Post-receive脚本下载

接下来下载GIT发送邮件脚本。下载地址为:

http://github.com/zma/usefulscripts/blob/master/script/post-receive

GIT的邮件发送是通过HOOKS目录下面的post-receive 实现的,每当有PUSH操作的时候,就会触发此脚本。

下载脚本,并放到$GIT_DIR/hooks/ 目录下面。$GIT_DIRGIT库的主目录,在把脚本放到HOOKS目录之后,赋予它执行权限。

chmod a+x hooks/post-receive

然后修改GIT库下面的config文件

添加:

[hooks]

        sendmail = /bin/msmtp

        emailprefix = "[GIT NOTICE]"

        showrev = "git show -C %s; echo"

修改$GIT_DIR/description文件,邮件中的标题是这个文件的第一行内容,修改这个文件第一行为你项目的名字。

因为我们使用的是MUTT来发信息的,所以需要修改刚才下载的post-receive脚本。

705行内容:

cat $email_tmp_file | mailx -S smtp="smtp://smtp.cse.ust.hk" -s "$emailsubject" -r $senderemail $recipients

修改为:

cat $email_tmp_file | mutt -s "$emailsubject"  git@ecworld.net

 

其中git@ecworld.net为一个邮件别名,里面包括了所有开发成员的邮件。

 

修改完之后,在团队成员进行PUSH的时候,每个人就会收到邮件了,内容如下:

 

参数文档:

http://fclose.com/b/linux/1473/setting-up-git-commit-email-notification/

http://www.josephj.com/entry.php?id=346

http://www.fwolf.com/blog/post/431

抱歉!评论已关闭.