我在Windows机器上创建了一个裸(中央)存储库。我的同事和我现在正在使用此存储库。我希望git在更新时发送电子邮件通知。我知道我们需要在post-receive
钩子中编写一些脚本并配置mailinglist
和emailprefix
属性。但我需要的是脚本(在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?
提前致谢。
答案 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
帐户。