2013-02-09 5 views
2

У меня есть установка BuildBot работает для программного проекта, и я пытаюсь настроить отправку уведомлений по электронной почте, как так:Buildbot не отправляет электронные письма?

from buildbot.status import mail 
c['status'].append(mail.MailNotifier(fromaddr=BUILDBOT_EMAIL, 
            mode=('failing'), 
            extraRecipients=[NOTIFICATION_EMAIL], 
            sendToInterestedUsers=False)) 

Где BUILDBOT_EMAIL строка «[email protected] », а NOTIFICATION_EMAIL - это строка с адресом электронной почты, где я хочу получать уведомления.

Согласно documentation, все кажется прекрасным; Я не отправляю почту заинтересованным пользователям, поэтому не требуется аргумент lookup. Я просто пытаюсь отправить почту на явно указанный адрес в случае сбоя сборки. Я в основном делаю это:

Чтобы получить простую сборку один-сообщение-в-(скажем, для списка рассылки), используйте следующую форму вместо. Эта форма не отправляет почту отдельных разработчиков (и, следовательно, не нуждается в подстановок = аргумент, объяснил ниже), вместо этого он только когда-либо отправляет почту дополнительных получателей по имени в рассуждениях:

mn = MailNotifier(fromaddr="[email protected]", 
        sendToInterestedUsers=False, 
        extraRecipients=['[email protected]']) 

Однако никаких сообщений электронной почты не поступает, хотя у меня есть сбои в сборке. Что может быть причиной?

Может быть проблема с тем, как я использую fromaddr и просто используя адрес [email protected] в соответствии с примерами? Должен ли этот адрес каким-либо образом регистрироваться в нашем домене? Будет ли это иметь значение, если вместо этого я использую [email protected]?

Возможно, проблема возникла от меня не с использованием relayhost? Из приведенных в документации примеров видно, что это нужно только для проверки подлинности с исходящим, а не с входящим адресом.

Любая помощь будет принята с благодарностью.

+2

Вы должны проверить 'twistd.log' на наличие исключений, ошибок и т. Д. – kfunk

+0

Я решил этот вопрос 2 дня назад, а' twistd.log' был именно тем местом, где я начал. Я скоро добавлю ответ, чтобы поделиться своим решением и закрыть вопрос. Спасибо за ваше предложение! – Boris

+0

@Boris: вы использовали PIP для установки MTA для вашего сборщика? –

ответ

1

Как и по предложению kfunk, я начал с просмотра twistd.log. Она содержала следующее:

2013-02-09 04:26:18+0000 [-] sending mail (868 bytes) to ['[email protected]'] 
2013-02-09 04:26:18+0000 [-] Starting factory <twisted.mail.smtp.ESMTPSenderFactory instance at 0x31dc488> 
2013-02-09 04:26:18+0000 [Uninitialized] SMTP Client retrying server. Retry: 5 
2013-02-09 04:26:18+0000 [Uninitialized] SMTP Client retrying server. Retry: 4 
2013-02-09 04:26:18+0000 [Uninitialized] SMTP Client retrying server. Retry: 3 
2013-02-09 04:26:18+0000 [Uninitialized] SMTP Client retrying server. Retry: 2 
2013-02-09 04:26:18+0000 [Uninitialized] SMTP Client retrying server. Retry: 1 
2013-02-09 04:26:18+0000 [Uninitialized] Unhandled error in Deferred: 
2013-02-09 04:26:18+0000 [Uninitialized] Unhandled Error 
    Traceback (most recent call last): 
    Failure: twisted.internet.error.ConnectionRefusedError: Connection was refused by other side: 111: Connection refused. 

Я попытался вручную отправить по электронной почте из командной строки машины (с использованием sendmail), но не; оказалось, что SMTP-сервер не работает. Решение заключается в установке и настройке агента передачи почты (для Ubuntu наиболее распространенным является Postfix, поэтому я его установил). Существует множество руководств и руководств по установке и настройке Postfix, поэтому, как только я обнаружил, что это было легко, продолжайте.

Существует много соображений относительно наличия собственного SMTP-сервера; например, найти способ защитить его от несанкционированного доступа, в противном случае он может быть использован, например, спамеры. Однако, если вы хотите получать электронные письма от buildbot, у вас должен быть SMTP-сервер, поэтому стоит изучить его и правильно настроить.

+0

Могу ли я узнать, как вы установили MTA в buildbot? Вы устанавливали с помощью PIP, поскольку buildbot использует виртуальную среду. –

+0

@nomanpouigt это было давно, поэтому я просмотрю свои старые заметки позже для получения более подробной информации, но, насколько я помню, я только что установил Postfix в машинке с обычным менеджером пакетов Ubuntu, возможно, что-то вроде https: // help.ubuntu.com/community/Postfix – Boris

Смежные вопросы