2009年07月06日

ダミーsmtp by Python

メール配信が絡むシステムだと困るのが配信時のテスト。

本番時のデータでないと検証が難しい、でも誤って配信されたら困る。。。

そんなことで悩んでて、ダミーのSMTPを立てようという結論になった。

それで調べると、Pythonを使って3行で実現できるようだ!

http://blog.cles.jp/item/2683

すばらしい。早速やってみよう。

linux環境に立てたいので、まずPythonのインストール。

# yum install python

で、上記で紹介されているファイルを作成。

# vi dummySmtp.py
import asyncore, smtpd
smtpd.DebuggingServer(('localhost', 25), None)
asyncore.loop()

(イントラネット内から接続時などは、localhostの部分をプライベートIPに書き換えなど適したものに。)

実行
# python dummySmtp.py

検証してみる。
# netstat -nlp | grep 25

tcp 0 0 192.168.0.35:25 0.0.0.0:* LISTEN 6252/python

お。ちゃんと待ち受けてるようだ。

別マシンから実行してみる。
# telnet 192.168.0.35 25

220 hogehoge SMTP Server (JAMES SMTP Server 2.3.1) ready Fri, 29 Aug 2008 15:48
:21 +0900 (JST)
helo 192.168.0.35
250-R3L-D-200 Hello localhost ([192.168.0.140])
250-PIPELINING
250 ENHANCEDSTATUSCODES
mail from:
250 2.1.0 Sender OK
rcpt to:
250 2.1.5 Recipient OK
data
354 Ok Send data ending with .
subject:"testmail"
test
.
250 2.6.0 Message received
quit
221 2.0.0 R3L-D-200 Service closing transmission channel

おおー。ちゃんと応答した。

smtpのマシンでは送信する代わりに以下のように出力された。

---------- MESSAGE FOLLOWS ----------
subject:"test"
test
------------ END MESSAGE ------------


これで外部にメールが飛ばないので、安心して検証ができる!!

ありがたいことです。


posted by hana at 16:05| Comment(0) | TrackBack(0) | メール関連 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック