私はPythonとBuildBotのまったく新しいユーザーです。現在、BuildBotのビルドステータスが変更されたとき(成功から失敗、またはその逆)に電子メールアラートを使用しています。失敗すると、ビルドが失敗するたびに電子メールが送信されます。メールを送信しようとすると、次のPythonエラーが発生します。
--- <exception caught here> ---
**ESMTPClient.__init__(self, secret, contextFactory, *args, **kw)
exceptions.TypeError?: unbound method init() must be called with ESMTPClient
instance as first argument (got ESMTPSender instance instead)**
答えを検索するときに、このエラーのいくつかの例をオンラインで見つけました。
'Thread.init'の引数として'self'を渡し、スーパークラスを呼び出す必要があります。
しかし、なぜエラーが発生するのかはまだわかりません。このエラーが発生した理由と問題の解決方法についてのガイダンス/ヘルプをいただければ幸いです。私はこのコードの作成者ではないため、問題を解決するために何を探すべきかわかりません。
次のコードがGmailアカウントから会社アカウントに変更される前は、メールは機能していました。
c['status'].append(mail.MailNotifier(
fromaddr="load.builder@company.co.uk",
extraRecipients=["example@company.com",
],
sendToInterestedUsers=False,
mode=('change', 'failing'),
relayhost="smtp.company.lan",
useTls=True,
smtpUser="lbuilder",
smtpPassword="password"))
例外を生成するコードのブロックは次のとおりです。
class ESMTPSender(SenderMixin, ESMTPClient):
requireAuthentication = True
requireTransportSecurity = True
def __init__(self, username, secret, contextFactory=None, *args, **kw):
self.heloFallback = 0
self.username = username
if contextFactory is None:
contextFactory = self._getContextFactory()
ESMTPClient.__init__(self, secret, contextFactory, *args, **kw)
self._registerAuthenticators()
SSA