How to test email sending without sending anything (SMTP sandbox setup)
Set up an SMTP sandbox in four steps and assert on the real message in CI: Laravel, Django, Node and shell examples, plus the details that break in production.
Practical, no-fluff articles about testing email and webhooks before your users ever see them.
Pick by the question you have: what to use instead of Mailtrap, how to test webhooks locally without a tunnel, how to keep test mail away from real inboxes, and how to let a script or an AI assistant review the result.
Set up an SMTP sandbox in four steps and assert on the real message in CI: Laravel, Django, Node and shell examples, plus the details that break in production.
Four ways to test webhooks locally, compared: a stable catch-all URL, a tunnel, provider replay and a local catcher — plus how to inspect the request and verify its signature.
What to use instead of Mailtrap: Mailpit, smtp4dev and the unmaintained MailHog compared with a privately hosted sandbox, plus a ten-minute migration checklist.
Stop pasting screenshots into a chat: the same read-only share link answers as JSON or plain text, so a model can check the subject, headers, links and body of every captured email.
MailHog has not been maintained for years. What replaced it (Mailpit, smtp4dev, a hosted private sandbox), how to migrate in five minutes and what you gain or lose.
Mailpit you run yourself, MailHog is the tool it replaced, Mailtrap is a service you pay for — compared on maintenance, cost, where the mail lives and team features.
What mailtrap.io actually is, what its metered free tier limits, what the searches "mail trap", "trap email" and "mailtrap login" mean — and the free alternatives, this instance included.
A Mailpit service for your compose file: ports, a data volume so captured mail survives restarts, the application configs that go with it, a healthcheck for CI and the mistakes that matter.
Mail::fake() proves the code asked to send; a real SMTP sandbox proves the message is right. Both setups, the assertion styles, the queue trap and the mistakes that let a broken email ship.
What to look for when the captured payloads are real: revocation, noindex, history, read-only sharing and machine-readable exports — and how this instance answers each point.