راهاندازی محیط تست با API Key
قبل از شروع، به یک API key از EvilMail نیاز دارید. از داشبورد خود به بخش تنظیمات API بروید و یک کلید جدید بسازید. این کلید را به عنوان متغیر محیطی ذخیره کنید تا در تستهای خود استفاده نمایید.
export EVILMAIL_API_KEY="your-api-key-here"ساخت آدرسهای ایمیل تستی از طریق API
برای هر تست، یک آدرس ایمیل یکبار مصرف منحصر به فرد بسازید. این کار تضمین میکند که تستها از یکدیگر ایزوله هستند و تداخلی بین آنها وجود ندارد.
curl -X POST https://evilmail.com/api/temp-email
-H "Authorization: Bearer $EVILMAIL_API_KEY"
-H "Content-Type: application/json"
-d '{"prefix": "test-signup", "domain": "evilmail.com"}'بررسی صندوق ورودی برای دریافت پیامها
پس از اینکه اپلیکیشن شما ایمیل تأیید را ارسال کرد، باید صندوق ورودی را برای دریافت پیام بررسی کنید. API سرویس EvilMail امکان polling صندوق ورودی را فراهم میکند.
curl -X GET https://evilmail.com/api/inbox/[email protected]
-H "Authorization: Bearer $EVILMAIL_API_KEY"نمونه Python برای انتظار دریافت ایمیل
در تستهای واقعی، باید مدتی صبر کنید تا ایمیل برسد. تابع زیر این کار را با تلاش مجدد انجام میدهد:
import requests
import time
def wait_for_email(address, api_key, timeout=60, interval=2):
"""Poll the inbox until an email arrives or timeout is reached."""
url = f"https://evilmail.com/api/inbox/{address}"
headers = {"Authorization": f"Bearer {api_key}"}
start = time.time()
while time.time() - start < timeout:
response = requests.get(url, headers=headers)
data = response.json()
if data.get("messages") and len(data["messages"]) > 0:
return data["messages"][0]
time.sleep(interval)
raise TimeoutError(f"No email received at {address} within {timeout}s")یکپارچهسازی با CI/CD (GitHub Actions)
میتوانید این تستها را در pipeline خود با GitHub Actions یکپارچه کنید. API key را به عنوان یک secret در مخزن خود اضافه کنید و در workflow استفاده نمایید:
env:
EVILMAIL_API_KEY: ${{ secrets.EVILMAIL_API_KEY }}
steps:
- name: Run email verification tests
run: pytest tests/email/ -vچه چیزهایی را در تستهای ایمیل بررسی کنیم
در تستهای ایمیل خود این موارد را assert کنید: رسیدن ایمیل در بازه زمانی مناسب، صحت موضوع ایمیل، وجود لینک تأیید در بدنه، معتبر بودن لینک و عملکرد صحیح آن پس از کلیک.
مقیاسپذیری تا صدها تست
با استفاده از API سرویس EvilMail میتوانید به راحتی صدها آدرس ایمیل تستی بسازید و تستهای موازی اجرا کنید. هر تست آدرس مستقل خود را دارد و هیچ تداخلی بین تستها وجود نخواهد داشت.

