Windows的接收后脚本(电子邮件通知)

时间:2012-06-19 07:37:02

标签: git msysgit git-post-receive

我在Windows机器上创建了一个裸(中央)存储库。我的同事和我现在正在使用此存储库。我希望git在更新时发送电子邮件通知。我知道我们需要在post-receive钩子中编写一些脚本并配置mailinglistemailprefix属性。但我需要的是脚本(在post-receive中),它在windows机器中发送邮件。

注意:这里有一个类似的问题。但答案是'该怎么办?'不是'怎么办? Can I have git send out an email with the post-receive-email scripts if my repo is on a Windows machine?

提前致谢。

1 个答案:

答案 0 :(得分:3)

你可以这样做,就像在post post-receive示例脚本中的注释中所描述的那样,但Git for Windows提供msmtp而不是sendmail。如果您将contrib/hooks中提供的脚本粘贴到接收后脚本中,则只需进行一些更改即可。首先,您需要指定一个smtp服务器,因此我建议添加配置变量sendemail.smtpserver并将其设置为您的服务器名称。如果您需要身份验证等,那么请查找配置变量,并修改脚本以使用它们。

在粘贴的电子邮件脚本中 - 将sendmail替换为msmtp,如下所示

send_mail()
{
    if [ -n "$envelopesender" ]; then
        msmtp --host="$smtpserver" -t -f "$envelopesender"
    else
        msmtp --host="$smtpserver" -t
    fi
}

最后,在文件末尾附近是一个读取git config变量的部分,所以添加一个新行来读取服务器值:

smtpserver=$(git config sendemail.smtpserver)

通过这两项更改,脚本可以正常使用,在推送时将邮件发送到hooks.mailinglist帐户。