20.13。 smtpd —SMTPサーバー
ソースコード: :source: `Lib / smtpd.py`
このモジュールは、SMTPサーバーを実装するためのいくつかのクラスを提供します。 1つは一般的な何もしない実装であり、オーバーライドできますが、他の2つは特定のメール送信戦略を提供します。
20.13.1。 SMTPServerオブジェクト
- class smtpd.SMTPServer(localaddr, remoteaddr)
- ローカルアドレス localaddr にバインドする新しい SMTPServer オブジェクトを作成します。 remoteaddr をアップストリームSMTPリレーとして扱います。 localaddr と remoteaddr はどちらも、(ホスト、ポート)タプルである必要があります。 オブジェクトは asyncore.dispatcher を継承しているため、インスタンス化時に asyncore のイベントループに挿入されます。
- process_message(peer, mailfrom, rcpttos, data)
NotImplementedError
例外を発生させます。 サブクラスでこれをオーバーライドして、このメッセージで役立つことを実行します。 remoteaddr としてコンストラクターに渡されたものはすべて、_remoteaddr
属性として使用できます。 peer はリモートホストのアドレス、 mailfrom はエンベロープの発信元、 rcpttos はエンベロープの受信者、 data はコンテンツを含む文字列です電子メールの( RFC 2822 形式である必要があります)。
20.13.2。 DebuggingServerオブジェクト
- class smtpd.DebuggingServer(localaddr, remoteaddr)
- 新しいデバッグサーバーを作成します。 引数は SMTPServer のとおりです。 メッセージは破棄され、stdoutに出力されます。
20.13.3。 PureProxyオブジェクト
- class smtpd.PureProxy(localaddr, remoteaddr)
- 新しい純粋なプロキシサーバーを作成します。 引数は SMTPServer のとおりです。 すべてが remoteaddr に中継されます。 これを実行すると、オープンリレーになる可能性が高いことに注意してください。注意してください。
20.13.4。 MailmanProxyオブジェクト
- class smtpd.MailmanProxy(localaddr, remoteaddr)
- 新しい純粋なプロキシサーバーを作成します。 引数は SMTPServer のとおりです。 ローカルのmailman構成がアドレスを認識していない限り、すべてが remoteaddr に中継されます。アドレスについては、mailmanを介して処理されます。 これを実行すると、オープンリレーになる可能性が高いことに注意してください。注意してください。