Mark's Place

A place for Mark's murmuring, blah, blah, blah, ...

Mark's Place
Watch Timeline

在 svn 的 post-commit hook 中使用 Gmail SMTP

Mark Wu 發表於 2007/11/05 03:47 · 靜態連結網址

Subversion 的 post-commit hook 是個很方便的功能,可以讓你在 commit 程式到 Repository 後,自動去做一些事。其中最有用的就是把 commit log 寄給相關的 developer。

在人人都有 Gmail 且 Gmail 也支援 SMTP 寄信的情況下,透過 Gmail 來寄出 commit log 應該是個好 idea。只不過, 目前的 mailer.py 並不支援 Gmail 的 TLS,所以下面的修改,就是要要將 mailer.py 修改成支援 TLS。

如果你是使用 Debian 或是 Ubuntu,請用 sudo apt-get install subversion-tools 將相關的 Subversion 工具裝到你的系統中。mailer.py 就在 /usr/share/subversion/hook-scripts/mailer 的目錄下。打開 mailer.py 找到 SMTPOutput class 中的 finish() menthod 將他改成(紅色是修改的部分):

  def finish(self):
    server = smtplib.SMTP(self.cfg.general.smtp_hostname)
    if self.cfg.is_set('general.smtp_username'):
      server.ehlo()
      server.starttls()
      server.ehlo()
      server.login(self.cfg.general.smtp_username,
                   self.cfg.general.smtp_password)
    server.sendmail(self.from_addr, self.to_addrs, self.buffer.getvalue())
    server.close()

然後將,mailer.conf 的 [general] section 修改成下面的設定,並且放在你的 (svn repository)/conf 下:

[general]
smtp_hostname = smtp.gmail.com:587
smtp_username = your_gmail_account@gmail.com
smtp_password = your_gmail_password

這樣就成了。

參考資料:

真實引用網址:

http://blog.markplace.net/trackback.php?id=305

迴響 (0) · 引用 (0) 文章分類: 可以做人幹嘛寫程式