Уведомления SVN через SMTP GMAIL

1

У меня SVN работает на Ubuntu 11.04 32bit и теперь хочу получать уведомления с помощью моей учетной записи 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/

после 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
    Пожалуйста, отредактируйте свой пост, чтобы добавить, в чем именно заключается проблема, вывод ошибок и т. Д. Кроме того, хорошо бы сформулировать ваш «вопрос» как вопрос.
  • 0
    Приношу свои извинения, я не получаю письма с подтверждением в адресах электронной почты, указанных в mailer.conf.
Показать ещё 1 комментарий
Теги:
svn
smtp

2 ответа

1

Понимаю, вы действительно не читали инструкции. Код, который вы копируете/вставляете, должен заменить фрагмент в большем файле, который вы не загрузили. Кроме того, имя файла сценария post-commit не должно .templ суффикса .templ; что они используют для неактивных файлов примеров/шаблонов в дистрибутиве.

Возможно, это объясняет, почему вы не могли заставить Sendmail работать. На этом этапе я бы рекомендовал вернуться к этому, поскольку это проще.

  • 0
    Где вы скачиваете mailer.py? Я думаю, это объяснило бы, почему у меня были проблемы, и, честно говоря, я впервые сделал такие вещи.
  • 0
    Читайте статьи блога, на которые вы ссылались.
0
  1. переименуйте свой пост-commit.templ в "post-commit"
  2. убедитесь, что вы предоставили права exec (например, 755) для "post-commit",

Ещё вопросы

Сообщество Overcoder
Наверх
Меню