Email testing guides
Hands-on email testing guides for developers and QA teams
Developer GuidesEmail Testing with Playwright: Sign Up, Read the Inbox, Click the Link
A step-by-step Playwright Test guide for email flows: catch every email with Mailpit, give each test its own address, follow the confirmation link and check that the user ends up signed in.
Read article →
Developer GuidesCypress Email Testing: Check Sign-Up Links and OTP Codes with Mailpit
Catch your app's test emails in Mailpit, wait for them with cy.request instead of fixed sleeps, pull out the link or one-time code, and follow it, even when it points to another domain.
Read article →
Developer GuidesSelenium Email Testing: Sign-Up and Verification Links with Python and Java
Selenium can fill in your sign-up form, but the verification email lives outside the browser. This guide shows how to catch it with Mailpit, wait for it properly, and finish the flow in Python and Java.
Read article →
QA TestingReading OTP Codes from Emails in Automated Tests (Without the Flakiness)
Email one-time codes are easy for people and surprisingly tricky for test scripts. Here is how to extract the right code every time, wait for the newest email only, and run it all in CI.
Read article →
QA TestingHow to Test Email Verification: What to Check, by Hand and in Code
Email verification looks like one click, but behind it sit a token, an expiry time, a resend button and a link that must point at the right server. Here is what to test, how to do it by hand, and how to automate it.
Read article →
QA TestingHow to Test Password Reset Flows: Security Test Cases That Matter
Password reset is a back door into every account, so it deserves more than one happy-path click. Here are the security test cases we run, with steps, expected results and code.
Read article →
QA TestingTesting Invites, Roles and Approvals: One Inbox per Test User
Invites, roles and approvals break in the gaps between users. Here is how to test them with one inbox per test user, a clear role matrix, and a Playwright script that drives several users at once.
Read article →
QA TestingTesting Sign-Up to Payment End to End: Trials, Stripe Test Cards and Every Email
Follow one test customer from sign-up through a trial, a Stripe test payment, a failed renewal and a cancellation, and learn what to check in every email your app sends along the way.
Read article →
QA TestingHow to Test Transactional Email HTML: Links, Images, Dark Mode and Mobile
A password reset email can pass every unit test and still ship a localhost link, a missing logo or "Hi {{first_name}}". Here is what to check by hand and how to automate the rest.
Read article →
Developer GuidesHow to Build Email Verification: Tokens, Expiry, Resends and Tests
Email verification looks like a one-afternoon feature, but most of the bugs hide in tokens, expiry, resends and link scanners. Here is how to build it carefully in Express, and how to test it end to end.
Read article →
Email DeliverabilityWhy Your App's Emails Land in Spam: Causes, a Debugging Checklist and Fixes
Sign-up and password reset emails that land in spam cost you real users. Here are the usual causes, a step-by-step checklist for finding yours, and three examples with their fixes.
Read article →
Email DeliverabilitySPF, DKIM and DMARC Explained: Real Records, dig Checks and Common Mistakes
Three small DNS records decide whether Gmail and Outlook trust your app's email. Here is what SPF, DKIM and DMARC each prove, how to check them with dig, and the mistakes we see most often.
Read article →