Back to Blog

Cloud vs Self-Hosted Email Testing: Which One Fits Your Team?

Every development team needs a way to catch test emails before they reach real inboxes. The question isn't whether to use an SMTP sandbox β€” it's whether to run one yourself or let someone else handle it.

Both approaches work. The right choice depends on your team's size, infrastructure comfort, and how many environments send email.

What "self-hosted" actually means

Self-hosted email testing tools like Mailpit, MailHog, or MailCatcher run on your own machine or server. You download a binary (or add a Docker service), configure it, and manage it yourself.

The appeal is clear:

  • Zero cost
  • Complete control over your data
  • Works offline
  • No vendor dependency

For a solo developer working on their laptop, self-hosted tools are hard to beat. Run mailpit, point your app at localhost:1025, and you're catching emails in seconds.

Where self-hosting gets complicated

The simplicity of self-hosted tools is real β€” on a single machine. The moment you need more than that, complexity creeps in.

Multiple environments

Your local machine runs Mailpit. What about staging? What about CI? Each environment needs its own SMTP endpoint. You end up with:

  • A Mailpit instance on your laptop
  • A Mailpit instance on the staging server
  • A Mailpit service in your CI pipeline (ephemeral, lost after each run)

Three separate inboxes, three separate configurations, no shared visibility.

Team access

Your teammate can't see your local Mailpit inbox. When QA asks "what does the password reset email look like?", you take a screenshot and paste it in Slack. When a designer wants to check the HTML rendering, they ask you to forward it somehow.

Self-hosted tools on a shared server solve this, but now you're managing infrastructure: DNS, HTTPS, authentication, backups, monitoring.

Infrastructure burden

Running Mailpit locally is trivial. Running it for a team requires:

  • A server or VM to host it
  • A reverse proxy (nginx or Caddy) for HTTPS
  • DNS configuration for a team-accessible hostname
  • Authentication (Mailpit supports basic auth, but that's a shared password for everyone)
  • Monitoring to ensure it stays running
  • Updates to track security patches

This isn't impossible β€” it's just work that has nothing to do with your actual product.

What "cloud-hosted" means

Cloud-hosted email testing services like Sendpit or Mailtrap run the SMTP sandbox for you. You sign up, get SMTP credentials, and configure your app. The service handles hosting, uptime, security, and updates.

The appeal:

  • Zero infrastructure to manage
  • Team access built in with user accounts
  • One SMTP config works across all environments
  • Persistent email storage with retention controls
  • Per-project mailbox isolation

The tradeoffs:

  • Requires an internet connection
  • Costs money beyond free tiers
  • Your test emails live on someone else's infrastructure
  • Vendor dependency

When self-hosted wins

Solo developer, single project. If you're working alone on one app and only need email capture on your laptop, a local tool is simpler and free.

Air-gapped environments. If your development environment can't reach the internet (classified projects, certain enterprise networks), self-hosted is your only option.

Advanced analysis needs. Tools like Mailpit offer SpamAssassin integration, HTML compatibility checking, and link validation that some cloud services don't provide.

Budget is literally zero. Open-source tools cost nothing. If your team is bootstrapping and every dollar matters, self-hosting avoids subscription costs.

When cloud-hosted wins

Teams of any size. The moment a second person needs to see test emails, cloud hosting eliminates the "screenshot in Slack" problem. Everyone logs into the same dashboard.

Multiple environments. One set of SMTP credentials works from local dev, CI, and staging. No per-environment Mailpit instances to manage.

CI/CD pipelines. Your CI runner sends emails during integration tests. With a cloud service, those emails are inspectable after the test run ends. With a self-hosted tool in CI, they vanish when the container stops.

Compliance and security. Cloud services handle encryption (TLS in transit, AES-256 at rest), access controls, and audit trails. Self-hosting means building all of that yourself.

No infrastructure team. If your team is all developers and nobody wants to maintain a Mailpit server, a managed service removes that burden entirely.

The "both" approach

Many teams use both. This isn't a compromise β€” it's often the optimal setup:

  • Local dev: Mailpit for instant, offline email capture with analysis features
  • Shared environments: Sendpit for team visibility, CI integration, and persistent storage

Your docker-compose.yml includes Mailpit for local development. Your staging and CI environments point at Sendpit. Developers get the speed of local tools and the collaboration benefits of a cloud service.

Making the decision

Ask your team these questions:

  1. How many people need to see test emails? If it's just you, self-host. If it's a team, cloud is simpler.
  2. How many environments send email? Local-only means self-hosted works fine. Local + CI + staging means cloud saves you from managing multiple instances.
  3. Who maintains infrastructure? If you have a DevOps team, self-hosting is viable. If developers manage everything, cloud reduces your maintenance surface.
  4. Does your workflow require offline access? If yes, you need a local tool (at least for local dev).
  5. What's your budget? Self-hosted is free. Cloud services have free tiers but cost money as you scale.

There's no universally right answer. But there is a right answer for your specific team, and it comes down to how much infrastructure work you're willing to absorb for the control you get in return.

More from the blog

MailHog Is Dead. Here's What to Use Instead.

MailHog Is Dead. Here's What to Use Instead.

MailHog hasn't been updated since 2020. The project has 200+ open issues, no maintainer, and known bugs that will never be fixed. Here's what happened and what your options are now.