ブラックホールSMTPD再び

2007/07/06 01:31

※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】

テスト時に何でも飲み込んでくれるSMTPサーバが欲しいと思ったことないですか?

これはそんなSMTPサーバです。

ノットテステッドなステータスですが、興味があったら試してみてください。

興味がある人がいたら、使ってみてコメントください。もう少しきちんとします :)

必要なもの

手抜きでsetを使っているため、Pythonの2.4以上が必要です。

また、unicodeブランチマージ後のDjango最新svn版が必要です。7/5以降にsvn(HEAD)からチェックアウトしたものであれば動くはずです。

利用するデータベースは変更できますが、sqlite3を使うように設定してあります。

特徴

受け付けたメールをデータベースに保存します。

受けたメールは、Djangoの管理インターフェースを使って内容を確認できます。

生ヘッダとデコード後のヘッダ、生ボディとデコード後のボディ、サブジェクト等がみられるため、デバッグに利用できます。ただし現在は、OSXのMail.appのように複数の添付ファイルの間に本文を挟めるようなメールの形式の場合、最後の本文しか保存されません。

実際に送信するメールアドレスを設定できます。

ほとんどのメールアドレスはテスト用のダミーアドレスとして、開発メンバーにだけ送信ということができます。

リレーする本物のSMTPサーバをBlackHoleSmtpd.pyに記述しなければなりません。メールアドレスの設定はDjangoの管理インターフェースからできますが、現時点ではブラックホールSMTPサーバの再起動が必要です。

添付ファイルの確認ができます。

添付ファイルはメールのidが付与されてattachディレクトリに保存されます。管理インターフェースからじかに開けます。

簡単な使い方

zipファイルを展開後、djblackholeディレクトリ内でsyncdbしてデータベースを作成します。忘れずに管理者ユーザを作成してください。

  $ python manage.py syncdb

Djangoを起動します。

  $ python manage.py runserver

スクリプトからDjangoのモデルを利用しますので、もう一枚シェルを開き、同じディレクトリで環境変数を設定します。

  export DJANGO_SETTINGS_MODULE=settings

SMTPサーバを起動します。SMTPプロトコルを利用するのでroot権限が必要です。

  $ sudo python BlackHoleSmtpd.py

localhostの25番でSMTPサーバが、localhostの8000番でメールの状況が確認できます。

2008/05/24 01:40 by cloneko
はじめまして。丁度開発用に需要があり、使わせていただきました。ありがとうございます。
バグ(?というかSQLiteの問題というか)があるようですのでblogで回避法とか書いてみました。
直される機会がありましたら直していただければと思います
2008/05/26 12:09 by makoto
clonekoさんありがとうございます。
興味のある人がとうとう登場したので、もう少しきちんとしたいと思います。
2011/03/24 11:31 by moni
win環境で添付ファイル(バイナリ)を保存すると余計な改行コードが追加されデータ破損する問題があったので、修正箇所を残して起きます。
server.py(67行目付近)
ファイルオープン処理のオプション'w'を'wb'にする。
2011/03/27 00:09 by makoto
お、ありがとうございます。
時期を見て手を入れようと思います。

Prev Entry

Next Entry