MailSlurpを利用したSendGridのE2Eテスト
- 2018年5月29日
- by 菊田 洋一
- Category: 技術ネタ
SendGridサポートエンジニアの菊田(@kikutaro_)です。突然ですが、開発者の皆さんはメール送信のテストをどのように行っていますか?テストコードを実装するとき、SMTPによるメール送信であれば組み込みサーバを利用できますが、Web APIによるメール送信の場合、テスト用のメールボックスを用意するなど工夫が必要になります。
本日紹介する「MailSlurp」はメールのE2E(end-to-end)テストをサポートするサービスで、
メールのテストを簡単にする仕組みを提供してくれます。具体的には、Web APIによるメールボックスの作成・削除、受信メールのデータ取得などが可能で、RESTで簡単に呼び出せるのでコードにも組み込みやすいです。
今回のブログではAPIリファレンスを使って以下の手順を実行します。
- MailSlurpのAPI Keyを取得
- MailSlurpのWeb APIでメールボックスを作成
- SendGridのWeb APIでメール送信
- MailSlurpのWeb APIで受信メールを取得
具体的なテストコードの例は挙げませんが、この手順をユニットテストなどで実行することでメール送信テストが簡単に組み込めます。
1.MailSlurpのAPI Keyを取得
MailSlurpのWeb APIを呼び出すにはAPI Keyが必要です。MailSlurpへログインして、メニューの「API Key」をクリックするとAPI Keyの値が表示されるのでコピーします。
2.MailSlurpのWeb APIでメールボックスを作成
「API Key」メニューの下にある「REST API Docs」を選択するとMailSlurpのAPIリファレンスが表示されます。
メールボックスの作成はエンドポイント「/inboxes」のPOSTメソッドで行います。メソッドを選択すると下図のようにメニューが展開されるので、API Keyを入力して「Try It out」ボタンを押します。
成功するとレスポンスでメールボックスのidとメールアドレスが返ってくるので、次にこのメールアドレス宛てにメールを送信します。
3.SendGridのWeb APIでメール送信
SendGridのWeb APIを使ってメールを送信します。SendGridもMailSlurp同様にブラウザからWeb APIを実行できます。細かい利用方法はブログ「新しいAPIリファレンスが追加されました」をご確認ください。
4.MailSlurpのWeb APIで受信メールを取得
SendGridによるメール送信が完了したら、MailSlurpのWeb APIにあるエンドポイント「/inboxes/{uuid}」を利用して受信メールのデータを取得します。uuidの部分には「2.メールボックスの作成」でメールアドレスとともに返ってきたメールボックスのidを指定します。
実行すると以下のように受信メールの内容を取得できます。bodyにはヘッダ情報を含めたメール本文が含まれています。
メールボックスが不要になった場合はエンドポイント「/inboxes」のDELETEメソッドで削除可能です。
このように簡単に送信されたメールの内容まで確認できました。今回はAPIリファレンスを利用してマニュアル実行しましたが、コードで一連のWeb APIを呼ぶだけで手軽にメールのE2Eテストが実装できます。メール送信のテストに困っていた方は試してみるといかがでしょうか?