本番時のデータでないと検証が難しい、でも誤って配信されたら困る。。。
そんなことで悩んでて、ダミーの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
rcpt to:
250 2.1.5 Recipient
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 ------------
これで外部にメールが飛ばないので、安心して検証ができる!!
ありがたいことです。