テスト時に何でも飲み込んでくれる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番でメールの状況が確認できます。
はじめまして。丁度開発用に需要があり、使わせていただきました。ありがとうございます。
バグ(?というかSQLiteの問題というか)があるようですのでblogで回避法とか書いてみました。
直される機会がありましたら直していただければと思います
2 by makoto
12:09 on
2008-05-26
clonekoさんありがとうございます。
興味のある人がとうとう登場したので、もう少しきちんとしたいと思います。
http://d.hatena.ne.jp/cloneko/20080524/1211560154
1 by cloneko
01:40 on
2008-05-24