はじめに
メール認証フローは、ほぼすべてのWebアプリケーションに組み込まれています。しかし、このフローのテストは開発者にとって悩みの種です。実際のメールアドレスを使うと管理が煩雑になり、手動での確認では時間がかかります。使い捨てメールアドレスとAPIを組み合わせれば、この課題を解決できます。
EvilMail APIを使ったテスト
EvilMail APIを使えば、プログラムからメールアドレスの作成、メールの受信確認、内容の取得が可能です。以下はAPIの基本的なエンドポイントです:
POST /api/v1/mailboxes - メールボックスの作成
GET /api/v1/mailboxes/{id}/messages - メッセージ一覧の取得
GET /api/v1/messages/{id} - メッセージ詳細の取得Pythonによる実装例
以下は、Pythonを使った自動テストのサンプルコードです:
import requests
import time
API_BASE = "https://api.evilmail.com/v1"
API_KEY = "your-api-key"
headers = {"Authorization": f"Bearer {API_KEY}"}
# 1. 使い捨てメールボックスを作成
resp = requests.post(f"{API_BASE}/mailboxes", headers=headers)
mailbox = resp.json()
email = mailbox["address"]
# 2. テスト対象アプリで登録を実行
register_user(email)
# 3. 認証メールの到着を待機
for _ in range(30):
resp = requests.get(
f"{API_BASE}/mailboxes/{mailbox['id']}/messages",
headers=headers
)
messages = resp.json()
if messages:
verification_link = extract_link(messages[0]["body"])
requests.get(verification_link)
break
time.sleep(1)CI/CDパイプラインへの統合
上記のテストスクリプトをCI/CDパイプラインに組み込むことで、デプロイのたびにメール認証フローを自動検証できます。GitHub Actions、GitLab CI、Jenkinsなど、主要なCI/CDツールとシームレスに連携可能です。環境変数にAPIキーを設定するだけで準備完了です。
テストのスケーリング
負荷テストやパフォーマンステストでは、大量のメールアドレスを同時に生成する必要があります。EvilMailのAPIはレート制限が緩やかで、並列リクエストにも対応しています。数百のアドレスを一括生成し、同時にメール送信フローを検証することが可能です。
まとめ
使い捨てメールアドレスとAPIの組み合わせは、メール認証テストの自動化における最善の手法です。手動テストから脱却し、信頼性の高い自動テストパイプラインを構築しましょう。

