我在 Windows 机器上创建了一个裸(中央)存储库。我和我的同事现在正在使用这个存储库。我希望 git 在更新时发送电子邮件通知。我知道我们需要在 post-receive
Hook 中编写一些脚本并配置 mailinglist
和 emailprefix
属性。但我需要的是脚本(在接收后),它在 Windows 机器上发送邮件。
注意:这里有一个类似的问题。但答案是“怎么办?”不是'怎么办?。 Can I have git send out an email with the post-receive-email scripts if my repo is on a Windows machine?
提前致谢。
最佳答案
您几乎可以按照常用的接收后示例脚本中的注释中的说明来执行此操作,但异常(exception)情况是 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
帐户。
关于git - Windows 的后接收脚本(电子邮件通知),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11096433/