Inbucket logo

Inbucket

Disposable email testing server with zero external dependencies

Self-contained email testing service that accepts messages for any address and exposes them via web, REST, and POP3 interfaces—no database required.

Inbucket banner

Overview

Purpose-Built for Email Testing

Inbucket is a production-ready email testing service designed for developers who need to capture, inspect, and validate outbound email during development and integration testing. Unlike traditional mail servers, Inbucket accepts messages for any email address without configuration, making it ideal for automated testing pipelines and local development environments.

Zero-Dependency Architecture

Built in Go with an Elm-based web interface, Inbucket bundles SMTP, POP3, HTTP servers, and storage into a single binary. No external databases, message queues, or services are required—simply launch the executable or Docker container and start testing. Messages are accessible through a modern web UI, RESTful API with an official Go client, or standard POP3 connections.

Deployment Flexibility

Inbucket runs on Linux, macOS, and Windows with minimal resource requirements. Deploy via Docker for containerized environments, build from source for custom integrations, or configure through environment variables for cloud-native deployments. The project is production-tested, actively maintained, and released under the MIT License, making it suitable for both commercial and personal projects.

Highlights

Self-contained binary with built-in SMTP, POP3, HTTP servers and storage
Accepts email for any address without pre-configuration or user management
RESTful API with official Go client for programmatic message retrieval
Docker-ready with automated builds tracking stable and edge releases

Pros

  • Zero external dependencies simplifies deployment and reduces operational complexity
  • Production-quality codebase with active maintenance and real-world usage
  • Multiple access methods (web UI, REST API, POP3) support diverse workflows
  • Lightweight resource footprint suitable for CI/CD pipelines and local development

Considerations

  • Not designed for production email delivery or long-term message retention
  • Limited to testing scenarios; lacks advanced mail server features like routing rules
  • Storage is ephemeral by default; messages may not persist across restarts
  • Web UI and API focused on inspection rather than email composition or sending

Managed products teams compare with

When teams consider Inbucket, these hosted platforms usually appear on the same shortlist.

Mailinator logo

Mailinator

Disposable email testing inboxes with public and private domains

Mailosaur logo

Mailosaur

Email & SMS testing with disposable inboxes and phone numbers

MailReach logo

MailReach

Email warm-up and spam testing to boost inbox placement

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Integration testing of applications that send transactional emails
  • Local development environments requiring email capture without external services
  • CI/CD pipelines needing disposable SMTP endpoints for automated tests
  • Teams wanting self-hosted alternatives to cloud-based email testing services

Not ideal when

  • Production email delivery requiring reliability, queuing, and retry logic
  • Scenarios needing persistent message archives or compliance-grade retention
  • Complex email routing, filtering, or forwarding workflows
  • High-volume email processing beyond testing and development use cases

How teams use it

Automated Integration Testing

CI/CD pipelines validate email content and delivery logic without external dependencies or API rate limits

Local Application Development

Developers capture and inspect outbound emails during feature development without configuring external SMTP services

QA Environment Email Capture

Testing teams verify email templates, personalization, and triggers in staging environments without risking real user inboxes

Microservices Email Validation

Containerized test suites verify notification services by querying Inbucket's REST API for expected message attributes

Tech snapshot

Go75%
Elm19%
CSS3%
Shell1%
JavaScript1%
HTML1%

Tags

smtp-serverpop3webmailsmtpgomailservermailosxintegration-testingwindowspopgolanglinux

Frequently asked questions

Does Inbucket require a database?

No. Inbucket includes built-in storage and requires no external database, message queue, or third-party service.

Can I use Inbucket in production for real email delivery?

No. Inbucket is designed exclusively for testing and development. It lacks features required for production email delivery like queuing, retry logic, and deliverability optimization.

How do I access captured emails?

Emails are accessible via the web interface (default port 9000), RESTful API with an official Go client, or standard POP3 protocol (default port 1100).

Does Inbucket persist messages across restarts?

By default, storage is ephemeral. Check the configuration documentation for options to persist messages if needed for your testing workflow.

What ports does Inbucket use?

Default ports are 2500 for SMTP, 9000 for the web interface, and 1100 for POP3. All ports are configurable via environment variables.

Project at a glance

Active
Stars
1,977
Watchers
1,977
Forks
179
LicenseMIT
Repo age13 years old
Last commit2 months ago
Self-hostingSupported
Primary languageGo

Last synced 3 hours ago