Mailosaurでメール送信のE2Eテスト
最近MailosaurというSaaSを使ってメール送信機能をテストしてみましたので、備忘がてら紹介メモを残しておきます。
Mailosaurとは?
Mailosaurとは Email and SMS testing platform
だそうです。
メールがちゃんと送れているか?だとかメール本文/添付ファイルなどは意図通りか?をテストするのに便利な機能が提供されています。
Mailosaurってなんて読むの?
以下の動画をみたところ、カタカナだと「メイラソー
」のように呼ばれていました。
どんなことができるの?
EメールやSMS関連のテストを行うための様々な便利機能が提供されています。
詳細は以下のドキュメントに記載されています。
例えばEメール関連ですと以下のような機能が提供されています。(上位プランのみの機能も含まれます)
テスト用メールボックスの提供
任意の名前@サーバID.mailosaur.net
のようなメールアドレスが提供されます。このアドレス向けにテストしたいメールを送ることで、送信できているかや内容が正しいかなどをコードから確認することが可能です。
API経由でのメール送信/転送/返信
APIを用いて送信/転送/返信が行えます。
これによりユーザーからのメールを契機にスタートするようなプロセスなどもE2Eテストが行えます。
単純なテキストだけでなく添付ファイルなどにも対応しており、多彩なシナリオに対応できそうです。
プレビュー生成機能
様々なメールクライアント上でメールがどのように表示されるかをプレビューする機能です。 以下のように様々な環境がサポートされています。
その他
そのほかにもPOP3/SMTPサーバも提供されていたりします。
類似/競合サービス
類似/競合サービスとしては以下のようなものもあります。
機能面、価格面、各言語向けSDK/ライブラリの充実状況、法人利用ができるライセンスか?などを考慮した結果、今回はMailosaurを選択しました。
自前でメールサーバを建ててもよかったのですが、$9~で手軽にAPIからメール操作ができるというのは非常に嬉しいところでした。
また、MailosaurはGo言語向けのSDK/ライブラリを提供しているのもポイント高かったです。
(テストしたいアプリケーションがGoで書かれていたため)
なお、Mailosaurは以下の言語/プラットフォームに対応しています。
使い方
以下に各言語/プラットフォーム向けのドキュメントが用意されています。
例えばGoだと以下のようなコードでMailosaurで発行したメールアドレスに対して送信したメールを確認できます。
(このコードでは受信したメールのサブジェクトをfmt.Printlnしています)
package emailtests import ( "fmt" "testing" "github.com/mailosaur/mailosaur-go" ) func TestExample(t *testing.T) { // Available in the API tab of a server apiKey := "YOUR_API_KEY"; serverId := "SERVER_ID"; serverDomain := "SERVER_DOMAIN"; m := mailosaur.New(apiKey); params := &mailosaur.MessageSearchParams { Server: serverId, } criteria := &mailosaur.SearchCriteria { SentTo: "anything@" + serverDomain, } email, err := m.Messages.Get(params, criteria) if (err != nil) { t.Error(err) } // If we have an email, print the subject fmt.Println("Subject: " + email.Subject) }
上記コードでは宛先メールアドレスを条件に受信メールを検索していますが、そのほかにも様々な条件が指定可能です。
(詳細は以下のAPIドキュメントを参照)
終わりに
ということでMailosaurを紹介しました。
メール関連のE2Eテストのお供にいかがでしょうか?
今回は以上です。