Sɛ wo application twerɛ email — signup nhwɛsoɔ, password reset, invoice, notification — ɛnneɛ ɛsɛ sɛ wowɔ sɔhwɛ a wɔde hwɛ sɛ email no ba ampa na nsɛm a ɛwɔ mu yɛ papa. Yɛahu sɛ nnipa pii twa email sɔhwɛ mu ɛfiri sɛ wɔsusu sɛ ɛyɛ den. Ɛnyɛ den, na saa nkyerɛkyerɛmu yi bɛkyerɛ.
Ɔhaw titiriw a ɛwɔ email sɔhwɛ mu ne sɛ ɛhia nkrataa adaka ampa a wobɛtumi akenkan firi code mu. Sɛ wode wo ankasa Gmail di dwuma wɔ CI pipeline mu a, ɛnyɛ den na ɛsɛe, ɛnhyɛ mu yie, na ɛnyin. Ɛha pɔtee na bere tiawa email API yɛ adwuma papa wɔ sɔhwɛ nhyehyɛeɛ papa mu.
Wo Sɔhwɛ Nhyehyɛeɛ Nea ɛdi kan no, fa wo API key firi EvilMail dashboard. Kora no sɛ environment variable wɔ wo CI system mu — mfa API key nhyɛ version control mu da. ``` export EVILMAIL_API_KEY="your_api_key_here" ```
Sɛdeɛ Woyɛ Sɔhwɛ Email Address Ansa sɔhwɛ biara ansa no, yɛ bere tiawa email foforɔ: ``` curl -X POST https://evilmail.pro/api/temp-email \ -H 'Content-Type: application/json' \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" \ -d '{"domain": "evilmail.pro", "ttlMinutes": 30}' ```
Mmuaeɛ no ma wo email address ne session token. Fa email address no kyerɛw din yɛ sɔhwɛ akontaa wɔ wo application mu.
Nkrataa Adaka Nhwɛ Sɛ woma wo app twerɛ email (kyerɛw din, password reset, ne nea ɛka ho) wieɛ a, hwɛ nkrataa adaka no kɔsi sɛ nsɛm no ba: ``` curl https://evilmail.pro/api/inbox \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" ```
Wɔ sɔhwɛ ampa mu no, wobɛhyehyɛ retry loop a timeout wɔ mu. Python nhwɛsoɔ a wode bɛfa adi dwuma ni: ``` import requests import time
API_KEY = os.environ['EVILMAIL_API_KEY'] BASE = 'https://evilmail.pro'
def wait_for_email(subject_contains, timeout=60): deadline = time.time() + timeout while time.time() < deadline: r = requests.get(f'{BASE}/api/inbox', headers={'X-API-Key': API_KEY}) messages = r.json().get('data', []) for msg in messages: if subject_contains in msg['subject']: return msg time.sleep(3) raise TimeoutError('Email not received') ```
Sɛdeɛ Wode Bɛhyɛ CI/CD Pipeline Mu Saa nhyehyɛeɛ yi yɛ adwuma yie ne CI system biara — GitHub Actions, GitLab CI, Jenkins, CircleCI. Nsɛm titiriw ne sɛ: sɔhwɛ biara nya bere tiawa address foforɔ, yɛ ne nhwɛsoɔ, na address no pɛ mu ho ankasa. Cleanup script biara nhia, nkrataa adaka a wɔde di dwuma nkyekyɛ biara nni hɔ, na sɔhwɛ a email a ɛfiri kan ama asɛe biara nni hɔ.
GitHub Actions workflow step bɛyɛ sɛ eyi: ``` - name: Run email integration tests env: EVILMAIL_API_KEY: ${'{ secrets.EVILMAIL_API_KEY }'} run: pytest tests/email/ -v --timeout=120 ```
Nea Ɛsɛ sɛ Wohwɛ Mma sɛ email baeɛ nko ara nna wo aniwa so. Hwɛ subject line no, sender address no, link titiriw (verification URL, reset token), ne sɛ link no de wo kɔ page papa so. Email sɔhwɛ a ɛyɛ pɛpɛɛpɛ hwɛ chain nyinaa firi trigger kɔsi delivery kɔsi nsɛm a ɛwɔ mu.
Sɛdeɛ Wode Di Dwuma ma Sɔhwɛ Ɔha Ahorow Ma sɔhwɛ akɛseɛ a ɛhia email address pii bere koro mu no, fa account creation endpoint yɛ address wɔ wo ankasa domain ase. Eyi ma wo tumi wɔ namespace no so na wotweri firi rate limiting wɔ temp-email endpoint no so: ``` curl -X POST https://evilmail.pro/api/accounts \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" \ -H 'Content-Type: application/json' \ -d '{"email": "[email protected]", "password": "testpass"}' ```
Sɛ sɔhwɛ no nyinaa ba awieɛ a, pra sɔhwɛ akontaa no nyinaa bom: ``` curl -X DELETE https://evilmail.pro/api/accounts \ -H 'X-API-Key: '"$EVILMAIL_API_KEY" \ -H 'Content-Type: application/json' \ -d '{"emails": ["[email protected]"]}' ```
Asɛm a Etwa To Email sɔhwɛ nsɛ sɛ ɛyɛ adeɛ a wode gyae to nkyɛn wɔ wo sɔhwɛ nhyehyɛeɛ mu. De bere tiawa email API papa a, ɛbɛyɛ adeɛ a wode to mu na ɛyɛ adwuma yie te sɛ integration sɔhwɛ foforɔ biara. De ahotoso kɔ adwuma sɛ wo email yɛ adwuma ampa.
