Mailbox for Laravel -
Test & Debug Emails Locally
A zero-configuration local email inbox for your Laravel app. Capture, inspect, and debug every outgoing email - no external services required.

You’re building email flows - welcome emails, password resets, invoices, notifications - but testing them is painful.
You get a wall of headers and encoded HTML in your log file. No way to see what the user actually receives.
External services add friction
Mailtrap, Mailhog, and similar tools require accounts, API keys, Docker containers, or running separate processes. Every team member has to set them up.
Emails break silently
A broken layout, a missing variable, a wrong recipient — you don’t catch it until someone reports it or you dig through logs.
Onboarding is slow
New developers on the project need to configure an email testing tool before they can work on anything that sends mail.
.webp&w=1280&q=75&dpl=dpl_FjwiyrwjQrCNnzZwY2waeU2Epn8f)
Why Mailbox?
Like Mailtrap - but it lives inside your app. No signups. No API keys. No extra processes. One composer require and you’re done.
1
For solo developers
You’re iterating on a transactional email. Instead of sending it to a real address, checking Mailtrap, or reading log files - just open "/mailbox" in your browser. Every email your app sends is right there, rendered exactly as the recipient would see it.
2
For teams
Everyone on the team gets the same email debugging experience out of the box. No shared Mailtrap accounts, no “did you configure your mail driver?” questions. It’s in the repo. It just works.
3
For CI and staging environments
Mailbox captures emails silently without sending them to real recipients. Use it in staging to verify email flows without accidentally emailing customers. Auto-enabled in non-production environments.
Mailbox intercepts all outgoing emails and displays them in a beautiful, self-contained dashboard.
Zero Configuration
Set MAIL_MAILER=mailbox and you’re done. No API keys, no external accounts, no setup.
Attachment Support
View, download, and preview email attachments including inline images.
Local Email Capture
Every email your application sends is intercepted and stored locally for inspection.
Modern Dashboard
A full-featured email client UI built with Vue 3 and Inertia.js, served at /mailbox.
Storage Flexibility
Choose between database (SQLite, MySQL, PostgreSQL) or JSON file storage.
Dark Mode
A polished dark theme that matches your development environment.
Zero Configuration
Set MAIL_MAILER=mailbox and you’re done. No API keys, no external accounts, no setup.
Attachment Support
View, download, and preview email attachments including inline images.
Local Email Capture
Every email your application sends is intercepted and stored locally for inspection.
Modern Dashboard
A full-featured email client UI built with Vue 3 and Inertia.js, served at /mailbox.
Three steps. No accounts. No configuration files. No environment variables beyond the mailer.
Point Laravel’s mailer to Mailbox with a single environment variable.
Add Mailbox to your Laravel project and install everything it needs.
Every email is captured and displayed at /mailbox.

Dashboard
See Every Email at a Glance
Browse all captured emails with subject, sender, recipients, and timestamps.
Inspect Emails Your Way
Switch between HTML preview, plain text, and raw RFC 822 source.
Work with Attachments Easily
View and download attachments directly from the dashboard.
Keep Your Inbox Clean
Delete individual messages or clear the entire inbox
Find What You Need, Fast
Paginated, searchable, and responsive
Database
Default. Uses a dedicated SQLite connection out of the box. Supports MySQL and PostgreSQL.
File
JSON files in storage/app/mailbox/. No database required.
Custom
Implement the MessageStore contract for Redis, S3, or any backend you need.
Sensible defaults. Full control when you need it.
Storage driver-database, file, or a custom implementation.
Retention period -How long to keep captured emails (default: 24 hours)
Polling interval-Real-time update frequency in milliseconds
Attachment limits-Max file size, total size, and allowed MIME types
Authorization gate-Custom gate for dashboard access control
Route prefix -Change the dashboard URL from /mailbox to anything
Artisan Commands
Safe by Default
Auto-enabled only in non-production environments
Control Access
Gate-based authorization via Laravel’s Gate facade
Customize Redirects
Configurable redirect for unauthorized users

Compatibility
Any frontend stack - Blade, Livewire, Vue, React, or headless
8+
PHP
10+
Laravel
8+
PHP
10+
Laravel
Compatibility
.webp&w=1920&q=75&dpl=dpl_FjwiyrwjQrCNnzZwY2waeU2Epn8f)
.webp&w=1920&q=75&dpl=dpl_FjwiyrwjQrCNnzZwY2waeU2Epn8f)
.webp&w=1920&q=75&dpl=dpl_FjwiyrwjQrCNnzZwY2waeU2Epn8f)