【问题标题】:SVN Notifications via GMAIL SMTP通过 GMAIL SMTP 的 SVN 通知
【发布时间】:2011-10-22 06:40:26
【问题描述】:

我在 Ubuntu 11.04 32 位上运行了 SVN,现在希望每次提交都使用我的 GMAIL 帐户通知。

我已经提交了一些事情,但实际上并没有收到他们的提交电子邮件。没有显示任何错误,我查看了日志,但目前还没有找到太多有用的信息。

我已经阅读了很多关于此的帖子并编辑了以下文件,包括它们现在包含的内容。我尝试过使用 sendmail 和 postfix,但没有成功,因此这就是我使用 Google 邮件服务器的原因。如果有人能指出正确的方向或替代方法,将不胜感激。

我找到并使用过的链接。

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/

post-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

ma​​iler.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]

ma​​iler.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()

【问题讨论】:

  • 请编辑您的帖子以添加确切的问题、错误输出等。此外,最好将您的“问题”表述为问题。
  • 抱歉,我没有在 mailer.conf 中指定的电子邮件地址中收到提交电子邮件。
  • mailer.py 似乎实际上并没有做任何事情,它只是一个类定义,还是您只发布了文件的一部分?不管怎样,试着让它从命令行开始工作。

标签: python linux svn ubuntu smtp


【解决方案1】:

我明白了,您还没有真正阅读说明。您复制/粘贴的代码需要替换您尚未下载的较大文件中的 sn-p。另外,post-commit 脚本的文件名不应该有.templ 后缀;这就是他们用于分发中非活动示例/模板文件的内容。

也许这也解释了为什么您无法让 Sendmail 工作。在这一点上,我建议回到那个,因为它更简单。

【讨论】:

  • 从哪里下载 mailer.py?我想这可以解释我为什么会遇到麻烦,老实说,这是我第一次真正做这种事情。
  • 阅读您链接到的博客文章。
【解决方案2】:
  1. 将“post-commit.templ”重命名为“post-commit”
  2. 确保将 exec 权限(例如 755)授予“提交后”

【讨论】:

    猜你喜欢
    • 2011-11-24
    • 2021-05-08
    • 2014-08-27
    • 2018-11-13
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    相关资源
    最近更新 更多