Engineering Blog

Insights for teams that ship email-driven apps.

Product updates, engineering deep-dives, and email delivery best practices from the MailHog team.

Admin·

The QA Engineer's Guide to Asserting on Emails in Test Suites

Stop manually checking if the email arrived. Here's a hierarchy of email assertions — from basic mock checks to full integration tests — with reusable helpers.

Read article →
Admin·

Email Privacy: What's Actually in the Headers Your App Sends

Your transactional emails leak server hostnames, internal IPs, and software versions in their headers. Here's what's exposed and how to clean it up.

Read article →
Admin·

Building a Welcome Email That Actually Works (Tested in 6 Clients)

A copy-paste-ready HTML welcome email template that renders correctly in Gmail, Outlook, Apple Mail, Yahoo, and dark mode. Includes the bulletproof button pattern.

Read article →
Admin·

A Field Guide to SMTP Error Codes (4xx vs 5xx, and What to Do)

Your logs are full of SMTP errors after a deploy. Here's what every 4xx and 5xx code actually means, whether to retry, and how to debug the SMTP conversation.

Read article →
Admin·

How to Test Magic Link Authentication End to End

Magic link auth is the hardest email flow to test. Here's how to write integration tests that capture the email, parse the link, and complete the login — in CI.

Read article →
Admin·

Self-Hosted vs Hosted Email Testing: Honest Tradeoffs

A fair comparison of running your own MailHog OSS instance vs using a hosted email testing service. We're biased — but we'll tell you when self-hosting wins.

Read article →
Admin·

Outlook Breaks Your Emails: 7 CSS Features You Cannot Use

Outlook desktop renders email HTML using Microsoft Word's engine, not a browser. Here are the 7 CSS features it destroys — and the workarounds that survive.

Read article →
Admin·

How to Test Email Flows in GitHub Actions

A complete guide to adding email assertions in your CI pipeline. Includes working GitHub Actions workflows with Node.js and Python examples.

Read article →
Admin·

DKIM, SPF, and DMARC Explained for Application Developers

Your email API docs say 'configure DKIM, SPF, and DMARC.' Here's what each one actually does, what the DNS records look like, and how to verify they're working.

Read article →
Admin·

Why Your Transactional Emails Land in Spam (and How to Fix It)

Half your users never got the password-reset email. Here are the five real reasons transactional emails go to spam — and an 8-point checklist to stop it.

Read article →