はじめに
メール認証フローは、ほぼすべての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)
