3

我有一个为软件项目运行的 buildbot 设置,并且正在尝试设置电子邮件通知,如下所示:

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

WhereBUILDBOT_EMAIL是一个字符串“buildbot@name-of-our-project.org”,并且NOTIFICATION_EMAIL是一个字符串,其中包含我想要获取通知的电子邮件。

根据文档,一切似乎都很好;我不会向感兴趣的用户发送邮件,因此不需要lookup争论。我只是尝试将邮件发送到明确说明的地址,以防任何构建失败。我基本上是这样做的:

要获得一个简单的每构建一条消息(例如,对于邮件列表),请改用以下表单。此表单不向单个开发人员发送邮件(因此不需要 lookup= 参数,如下所述),而是只向参数中指定的额外收件人发送邮件:

mn = MailNotifier(fromaddr="buildbot@example.org",
                  sendToInterestedUsers=False,
                  extraRecipients=['listaddr@example.org'])

但是,即使我的构建失败,也没有电子邮件到达。可能是什么原因?

我使用 fromaddr 的方式是否存在问题,并且只是buildbot@domain-name.org按照示例使用地址?这个地址是否应该以某种方式在我们的域中注册?如果我改用它会有所不同buildbot@localhost吗?

问题可能是我没有使用引起的relayhost吗?从文档中的示例看来,这只需要为出站地址而不是入站地址进行身份验证设置。

任何帮助将不胜感激。

4

1 回答 1

2

与 kfunk 的建议类似,我首先查看了 twistd.log。它包含以下内容:

2013-02-09 04:26:18+0000 [-] sending mail (868 bytes) to ['addr@example.com']
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 服务器,因此值得努力学习和正确配置它。

于 2013-02-18T12:44:51.100 回答