Test emails.
Not your users.

SMTPBox catches emails from development, staging and automated tests before they reach real customers.

SMTP, API, team workspaces and 2,500 sandbox emails every month - free.

  • No credit card
  • Setup in under a minute
  • 2,500 emails / month
  • Multiple team members
>_ SMTPBox
SUBJECT

Welcome to Acme

Captured
From
hello@acme.dev
To
charles@example.com
Works with SMTP-capable stacks including
PHPLaravelSymfonyNode.jsPythonDjangoRuby.NETWordPressPlaywright

SMTP INTEGRATION

Your app already sends email.
Just point it at SMTPBox.

No SDK, package or code rewrite. Change your SMTP credentials and send exactly as you do today.

  • Works with every SMTP-capable framework
  • STARTTLS on 587/2525 and implicit TLS on 465
  • Credentials scoped to each inbox
Read the documentation →
MAIL_MAILER=smtp

MAIL_HOST=smtp.smtpbox.dev
MAIL_PORT=587
MAIL_USERNAME=sb_7M9xKp82
MAIL_PASSWORD=••••••••••••
MAIL_ENCRYPTION=tls
$ php artisan tinker
> Mail::to('test@example.com')->send(new WelcomeEmail());

Captured by SMTPBox

HOW IT WORKS

From config to captured
in three small steps.

01

Create a box

Keep local development, staging, CI tests and feature branches in separate inboxes.

customer-portal / staging
02

Use your credentials

Point your existing mailer at our SMTP server, or send with the REST API.

smtp.smtpbox.dev:587
03

Inspect every email

Preview HTML, text, headers, attachments, links, raw MIME and delivery metadata.

250 Message captured

BUILT TO DEBUG

Everything you need
to test email.

No generic collaboration fluff. Just the tools developers need to catch, inspect and automate.

SMTP sandbox

Drop SMTPBox into your existing mail configuration. No SDK required, and nothing reaches the original recipient.

smtp.smtpbox.dev:587

17:03:12 CONNECT  192.168.1.42

17:03:12 AUTH     authenticated

17:03:13 DATA     18.4 KB

17:03:13 STORED   msg_7Jd92K ✓

{ }

REST API

Create inboxes, retrieve messages and automate testing with clean JSON.

GET /v1/inboxes/{id}/messages

Instant preview

Switch between rendered HTML, source, plain text and raw MIME.

PreviewHTMLText

Message search

Search sender, recipient and subject to find the message your test generated.

welcome@example.test

Link detection

Extract and inspect every verification, reset and unsubscribe URL.

✓ /verify/8fKs2

Team workspaces

Invite the developers and QA engineers who need access-without paying per seat.

CI/CD friendly

Made for GitHub Actions, GitLab CI, Jenkins, CircleCI and Azure DevOps.

A UI THAT STAYS OUT OF YOUR WAY

Debug email without
debugging your email tool.

A focused interface for the details that matter-without enterprise dashboard clutter.

Customer Portal

development

Welcome to Acmehello@acme.devnow
Reset your passwordsecurity@acme.dev46s
Your invoice is readybilling@acme.dev2m

Welcome to Acme

hello@acme.dev → charles@example.com

Received
SMTP · TLS 1.3
Size
24.6 KB
Message-ID
<8dc92@example.com>
Status
Processed

API-FIRST EMAIL TESTING

Built for humans.
And your test suite.

Inspect messages in the dashboard or let your automated tests wait for the exact email they triggered.

  • Search and retrieve messages
  • Assert recipients, content and links
  • Webhooks for instant workflows
  • Delete test data when you're done
Explore the API reference →
terminal
$ curl https://api.smtpbox.dev/v1/inboxes/box_82K/messages \
  -H "Authorization: Bearer sb_test_xxxxx"

{
  "data": [{
    "id": "msg_71KJ92",
    "to": ["charles@example.com"],
    "subject": "Welcome to Example"
  }]
}
registration.test.js ● PASS
const email = await smtpbox.waitFor({
  to: 'customer@example.com',
  subject: 'Reset your password'
});

expect(email.links).toContain(resetUrl); 

CATCH-ALL INBOUND EMAIL

Need inbound email too?

Enable an optional generated catch-all address. Use any alias you like—everything lands safely in the same test inbox.

anything@a1b2c3.inbound.smtpbox.dev
Registration testsTicketing systemsReply-to testingAutomated QA
alice@a1b2c3.inbound.smtpbox.dev
billing@a1b2c3.inbound.smtpbox.dev
reset-test-382@a1b2c3.inbound.smtpbox.dev
development 3 messages

FRAMEWORKS

Drop SMTPBox into your stack.

If it speaks SMTP, it works with SMTPBox.

Laravel

MAIL_HOST=smtp.smtpbox.dev

Node.js

nodemailer.createTransport(...)
🐘

PHP

$mailer->send($email)

Symfony

MAILER_DSN=smtp://...
Py

Python

smtplib.SMTP(...)
.N

.NET

new SmtpClient(...)

A SIMPLE OFFER

Email testing without
pricing guesswork.

SMTPBox offers a permanent free sandbox and one paid plan. Confirm current third-party features and pricing with each provider before choosing.

SIMPLE PRICING

Pricing without the spreadsheet.

Start free. Upgrade when you're actually using it.

FREE

£0 / forever

2,500 emails / month
  • 5 team members
  • Unlimited projects & inboxes
  • SMTP and REST API access
  • Webhooks and link extraction
  • HTML, text, headers & source
  • Attachments and search
  • 7-day retention
Start for free →No credit card required

*Fair usage applies. SMTPBox is designed for development and testing environments, not production email delivery or permanent email storage.

HOSTED FOR YOUR WHOLE TEAM

Mailpit locally.
SMTPBox everywhere else.

Mailpit and MailHog are brilliant for local development. SMTPBox gives your shared environments the same simplicity without another service to run.

01Shared stagingOne inbox the whole team can inspect.
02CI pipelinesAssert emails through an API built for tests.
03Remote developmentWorks wherever your development environment lives.
04Feature environmentsSeparate boxes for every branch and preview.

SECURITY BY DESIGN

Test email is still data.

Safe defaults protect every message from connection to automatic deletion.

TLS encrypted SMTP

TLS supported across SMTP connections, with HTTPS for every dashboard and API request.

Scoped API keys

Separate sbx_api_... credentials and choose read-only or read/write access for each integration.

Automatic deletion

Messages expire according to your retention period, or delete them immediately through the UI or API.

No production delivery

Sandbox messages are never forwarded to their original real-world recipients.

CLEAR PRODUCT BOUNDARIES

Built for testing.
Not sending newsletters.

SMTPBox does

  • Catch development emails
  • Test transactional email flows
  • Inspect HTML, headers and links
  • Test registration and password resets
  • Power automated QA
  • Test inbound email workflows

× SMTPBox doesn't

  • Deliver production email
  • Send marketing campaigns
  • Replace SES, Postmark or SendGrid
  • Store your email forever
  • Send bulk email
  • Charge you automatically at your limit

Keep your existing production provider. SMTPBox sits safely in your development workflow.

FAQ

Questions, answered.

What is an email sandbox?

A safe inbox that captures mail from development and test environments. You can inspect the message without delivering it to a real recipient.

Will emails actually be delivered?

No. SMTPBox catches sandbox mail and never forwards it to the original recipient.

Can I use SMTPBox with Laravel or WordPress?

Yes. SMTPBox works with Laravel, WordPress and any other application that supports standard SMTP.

What happens after 2,500 emails?

We stop accepting new messages until your next monthly period or until you choose to upgrade. Existing captured messages stay available for their retention period. We never charge you automatically.

What does unlimited mean?

Unlimited for normal development and testing usage, subject to a fair-use policy. It does not cover production delivery, bulk sending or permanent storage.

Can automated tests read emails?

Yes. The REST API can wait for, search and retrieve messages so your tests can assert recipients, content and links.

How long are emails stored?

Messages are stored for 7 days on Free and 30 days on Unlimited. You can delete any message immediately.

smtpbox - zsh
$ smtpbox init

✓ Workspace created

✓ Inbox ready

✓ SMTP credentials generated

Ready to catch your first email.

READY WHEN YOU ARE

Stop accidentally
emailing customers.

Create your first SMTP sandbox in less than a minute.

Start testing free →No card required · 2,500 emails every month