2011-08-08 74 views
1

我有SVN在Ubuntu 11.04 32位上運行,現在需要使用我的GMAIL帳戶進行每次提交的通知。通過GMAIL SMTP的SVN通知

我已經提交了一些東西,但實際上並沒有收到他們的提交郵件。沒有顯示任何錯誤,並且我查看了整個日誌,但還沒有發現很多有用的信息。

我已閱讀相當多的帖子關於此和編輯下面的文件,包括他們現在包含的內容。我試過使用sendmail和postfix,但沒有與他們的運氣,因此這就是爲什麼我使用谷歌的郵件服務器。如果有人能指出我朝着正確的方向或另一種方法,我將不勝感激。

我找到並使用的鏈接。

http://sadomovalex.blogspot.com/2009/12/use-gmail-smtp-server-for-post-commit.html

http://iffee.wordpress.com/2009/04/08/svn-commit-to-google-apps-email-notification/

-commit.tmpl後

REPOS="$1" 
REV="$2" 

/home/megaz/svn/repos/ya/hooks/mailer.py commit "$REPOS" \ 
"$REV" /home/megaz/svn/repos/ya/hooks/mailer.conf 

mailer.conf

[general] 
smtp_hostname = smtp.gmail.com:587 
smtp_username = #mygmailaddress 
smtp_password = #mygmailpassword 
smtp_use_ssl = true 
smtp_use_tls = 1 

[defaults] 
diff = /usr/bin/diff -u -L %(label_from)s -L %(label_to)s %(from)s %(to)s 
commit_subject_prefix = [SVN-Commit] 
propchange_subject_prefix = 
lock_subject_prefix = 
unlock_subject_prefix = 
from_addr = #my from address 
to_addr = #my to address 
reply_to = #my replyto address 
generate_diffs = none 
show_nonmatching_paths = yes 

[maps] 

mailer.py

class SMTPOutput(MailedOutput): 
    def start(self, group, params): 
    MailedOutput.start(self, group, params) 
    self.buffer = StringIO() 
    self.write = self.buffer.write 
    self.write(self.mail_headers(group, params)) 
    def finish(self): 
    server = smtplib.SMTP(self.cfg.general.smtp_hostname) 
    # 2009-12-13 asadomov: add ssl configuration (e.g. for gmail smtp server) 
    if self.cfg.is_set('general.smtp_use_ssl') and self.cfg.general.smtp_use_ssl.lower() == "true": 
     server.ehlo() 
     server.starttls() 
     server.ehlo() 
    if self.cfg.is_set('general.smtp_username'): 
     server.login(self.cfg.general.smtp_username, 
        self.cfg.general.smtp_password) 
    server.sendmail(self.from_addr, self.to_addrs, self.buffer.getvalue()) 
    server.quit() 
+0

請編輯您的帖子添加到底是什麼問題,錯誤輸出等等。另外,把你的「問題」作爲一個問題來說是很好的。 – agf

+0

我的歉意是,我沒有收到mailer.conf中指定的郵件地址中的提交郵件。 – Unleashed

+0

'mailer.py'似乎沒有做任何事情,它只是一個類定義,或者你只發布文件的一部分?無論如何,試着讓它在命令行中起作用。 – tripleee

回答

1

我明白了,你還沒有真正閱讀說明書。您複製/粘貼的代碼需要替換您尚未下載的較大文件中的代碼段。另外,提交後腳本的文件名不應有.templ後綴;這就是他們用於分發中不活動的示例/模板文件的內容。

也許這解釋了爲什麼你不能讓Sendmail工作。在這一點上,我建議回到這一點,因爲它更簡單。

+0

你從哪裏下載mailer.py?我想這可以解釋爲什麼我有麻煩,說實話這是我第一次真正做到這樣的東西。 – Unleashed

+0

閱讀您鏈接到的博客文章。 – tripleee

0
  1. 重命名「後commit.templ」到「後提交」
  2. 確保你給高管的權利(如755)「後提交」