4

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

注意:这里有一个类似的问题。但答案是“怎么办?” 不是'怎么办? 如果我的 repo 在 Windows 机器上,我可以让 git 发送一封带有 post-receive-email 脚本的电子邮件吗?

提前致谢。

4

1 回答 1

3

您可以按照 stock post-receive 示例脚本中的注释中的描述执行此操作,但 Windows 版 Git 提供 msmtp 而不是 sendmail 除外。如果您将贡献的脚本从contrib/hooks粘贴到 post-receive 脚本中,那么您只需要进行一些更改。首先,您需要指定一个 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)

With those two changes in place, the script works fine for me, sending mail to the hooks.mailinglist account on push.

于 2012-06-19T08:43:45.773 回答