ruby製のテスト用SMTPサーバ


システム開発時にメール送信機能を実装する場合があります。
この時に、メール送信は試したいけど、テストメールがバンバン飛ぶのはなあと
いうことがよくあるでしょう。


まあ、Apache JamesとかでSMTPサーバを立てて飛ばないように設定をすればいいのですが、
設定とか面倒くさいし、別にそこまで仰仰しいものは必要なくて、
ただ、受け取ったらテキストとして吐くだけくらいのさくっと簡単なやつがいいんだけどなと思っていました。



で、ちょっと調べてみたら、こんなのがありました。

開発用のメールサーバ mocksmtpd を gem にしてみた。 - こせきの技術日記


テスト用のSMTPサーバのモックで単純にメールを受け取ってHTML形式で吐き出すというものです。

インストール

rubyで作成されています。
gem化もされているので、インストールは次のコマンドで完了です。

$ gem sources -a http://gems.github.com
$ sudo gem install koseki-mocksmtpd

使い方

最初に初期化コマンドをうって、設定ファイルなどを作成する必要があります。

$ mocksmtpd init

その後、STARTするだけで普通に起動します。

$ sudo mocksmtpd start

自分が試したときは、初期化の時に設定ファイルをおくPATHを指定しないと作成できませんでした。

$ mocksmtpd init config
Created: config/
Created: config/inbox/
Created: config/log/
Created: config/mocksmtpd.conf

Windowsだとバックグラウンドで起動する場合はエラーとなりますが、
コンソール上で起動する場合は問題なくいけます。
このときはrubyを指定して実行する必要があります。

$ ruby mocksmtpd --config=config/mocksmtpd.conf

メールは初回に作成されたinboxフォルダ内でHTML形式で出力されます。
一覧用のHTMLも出力されるので、webサーバのpublicとかに置いとくと簡単に確認できます。



結構簡単に起動できて、使い勝手も良さそうなのでちょっと使ってみようかなと思います。