Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

メールのテストに便利なMailTrap

メール送信のテストについて調べていたところ、MailTrapという便利なサービスがあることを知りました。

f:id:kikutaro777:20180402214843p:plain

MailTrapを使うと送信テストで一番怖い「メールの誤送信事故」を確実に防ぐことができます。宛先に本番データを使っても大丈夫です。

仕組みはよくあるSMTPのモックと同じで、MailTrapの場合はダミーのinboxを作ってくれて

f:id:kikutaro777:20180402220002p:plain

SMTPの他、POPもダミーを用意してくれます。

f:id:kikutaro777:20180402220018p:plain

あとは、このモック開発環境やテスト環境を設定するだけです。たとえば、JavaMailでSendGridのSMTPを使っているアプリケーションがあった場合、以下のようにSMTPの接続先と認証情報を変えるだけです。

Properties prop = new Properties();
//テスト時はSendGridのSMTP使っているところをMailTrapに変えるだけ
//prop.put("mail.smtp.host", "smtp.sendgrid.net");
prop.put("mail.smtp.host", "smtp.mailtrap.io");
prop.put("mail.smtp.port", 2525);
//認証情報はダミーで発行されたUsername, Passwordをセット
Transport.send(msg, "user", "password");

宛先のメールアドレスに実在のものを指定してメール送信すると、MailTrapのinboxで以下のようにメールを確認できます。もちろん、実際の宛先メールアドレスにはメールが届きません。

f:id:kikutaro777:20180402222324p:plain

Rawデータの確認もできます。(NetBeansで文字コード指定していないからMS932(^^;
f:id:kikutaro777:20180402222613p:plain

Analysisでは簡単なスパム判定までしてくれます。裏ではSpamAssasin使っているようです。
f:id:kikutaro777:20180402222730p:plain

inboxのメールはAPIを利用して簡単に取得できます。

f:id:kikutaro777:20180402223119p:plain

そのため、先日書いたMailSlurpのようなE2Eテストもやろうと思えばできそうです。

kikutaro777.hatenablog.com

お手軽に事故防止しつつ、ちゃんとしたテストができるので良い感じです。

調べたら日本語記事も結構ありました。
qiita.com

qiita.com

its-office.jp

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村