实现Git提交后自动邮件通知的功能配置

一、安装配置MSMTP

1 安装msmtp

wget https://sourceforge.net/projects/msmtp/files/msmtp/1.6.5/msmtp-1.6.5.tar.xz
tar xvf msmtp-1.6.5.tar.xz
cd msmtp-1.6.5
./configure –prefix=/usr/local/msmtp
make
make install

2 配置msmtp

cd /usr/local/msmtp
mkdir etc
vim msmtprc
  #set default values for all following accounts.
  defaults
  logfile /usr/local/msmtp/msmtp.log
  #the SMTP server of provider
  account test
  #SMTP邮件服务器地址
  host mail.btte.net
  #发送邮件的邮箱
  from test@163.net
  auth login
  #登陆邮件服务器的账号
  user test@163.net
  #密码
  password xxxxxxxx

退出保存
为了保护账号密码,需要修改配置文件权限

chmod 600 msmtprc

3 测试MSMTP功能

    bin/msmtp [email protected]

    Just a test for msmtp.

    [Ctrl+d]

二、安装配置MUTT

yum –y install mutt
vim /etc/Muttrc

在文件末尾添加已下指令

set from="[email protected]"
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="Git-Server"
set editor="vim"

保存退出后便可以测试下msmtp+mutt的配置是否成功:

echo "hello world" | mutt -s "test again" test@163.net

查看邮箱是否正常接收到文件

三、Git库配置

1 以提供git服务的用户名进入git服务器,修改库配置文件以集成MSMTP+MUTT环境。

例如,我们这里要对testing库进行设置,开发人员在test库在进行push操作后,便会自动发送邮件给mailinglist下的指定人员。

    su git && cd /home/git/repositories/testing.git
    vim config       //添加以下配置
    [hooks]
    mailinglist = [email protected]     //设置收件人
    sendmail = /usr/local/msmtp/bin/msmtp
    envelopesender = [email protected]    //设置发件人,跟之前的设置对应
    emailprefix = "Git Push Notice: "             //邮件主题
    emailfrom = "Git Server"         
    showrev = "git show -C %s;echo"             //邮件内容
    # 下载post-receive脚本
    cd testing.git/hooks
    wget http://IP/git-mail/post-receive
    chmod a+x post-receiev

2 写入库名称,这样邮件会自动提示push的库名称,如果没有这一步,则会提示是unamed project

vim description //写入库名testing

testing

之后就可以在testing库中测试。任意push一段代码,查看是否会自动发送邮件。

你可能感兴趣的:(Git)