### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python 標準ライブラリ »
- 20. インターネットプロトコルとその支援 »

# 20.13. `smtpd` — SMTP サーバー

このモジュールでは、 SMTP サーバを実装するためのクラスをいくつか提供しています。一つは何も行わない、オーバライドできる汎用のサーバで、その他の二つでは特定のメール送信ストラテジを提供しています。

## 20.13.1. SMTPServer オブジェクト

class `smtpd.``SMTPServer`(localaddr, remoteaddr)

  新たな `SMTPServer` オブジェクトを作成します。このオブジェクトはローカルのアドレス localaddr に関連づけ (bind) されます。オブジェクトは remoteaddr を上流の SMTP リレー先にします。このクラスは `asyncore.dispatcher` を継承しており、インスタンス化時に自身を `asyncore` のイベントループに登録します。

  `process_message`(peer, mailfrom, rcpttos, data)

    このクラスでは `NotImplementedError` 例外を送出します。受信したメッセージを使って何か意味のある処理をしたい場合にはこのメソッドをオーバライドしてください。コンストラクタの remoteaddr に渡した値は `_remoteaddr` 属性で参照できます。 peer はリモートホストのアドレスで、 mailfrom はメッセージエンベロープの発信元 (envelope originator) 、 rcpttos はメッセージエンベロープの受信対象、そして data は電子メールの内容が入った(RFC 2822 形式の)文字列です。

## 20.13.2. DebuggingServer オブジェクト

class `smtpd.``DebuggingServer`(localaddr, remoteaddr)

  新たなデバッグ用サーバを生成します。引数は `SMTPServer` と同じです。メッセージが届いても無視し、標準出力に出力します。

## 20.13.3. PureProxy オブジェクト

class `smtpd.``PureProxy`(localaddr, remoteaddr)

  新たな単純プロキシ (pure proxy) サーバを生成します。引数は `SMTPServer` と同じです。全てのメッセージを remoteaddr にリレーします。このオブジェクトを動作させるとオープンリレーを作成してしまう可能性が多分にあります。注意してください。

## 20.13.4. MailmanProxy Objects

class `smtpd.``MailmanProxy`(localaddr, remoteaddr)

  新たな単純プロキシサーバを生成します。引数は `SMTPServer` と同じです。全てのメッセージを remoteaddr にリレーしますが、ローカルの mailman の設定に remoteaddr がある場合には mailman を使って処理します。このオブジェクトを動作させるとオープンリレーを作成してしまう可能性が多分にあります。注意してください。

### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python 標準ライブラリ »
- 20. インターネットプロトコルとその支援 »