Skip to main content

Rails mail to a local inbox shared by all your apps

Instead of a Rails letter opener setup, send development email over SMTP to Buggregator: set Action Mailer's smtp_settings to address 127.0.0.1, port 1025. Every email lands in the Buggregator UI, the same inbox your other apps on this machine can use.

Steps

1. Start Buggregator

Run the container. Port 8000 is the web UI, port 1025 is the SMTP server.

bash
docker run --pull always \
  -p 127.0.0.1:8000:8000 \
  -p 127.0.0.1:1025:1025 \
  -p 127.0.0.1:9912:9912 \
  -p 127.0.0.1:9913:9913 \
  ghcr.io/buggregator/server:latest

2. Set the SMTP settings for development

Add this to your development environment file. No username, password or TLS setup is needed.

ruby
# config/environments/development.rb
config.action_mailer.smtp_settings = {
    address: '127.0.0.1',
    port: 1025,
}

3. Make sure the delivery method is SMTP

Action Mailer's delivery_method defaults to :smtp. If your development file sets another one, for example :letter_opener or :test, change it in the same file:

ruby
config.action_mailer.delivery_method = :smtp

4. Send an email and open it

Trigger any mailer, then open http://127.0.0.1:8000. You see the rendered HTML with a desktop/mobile switcher, the plain text version, the addresses, the attachments and the raw MIME source. In Docker Compose, use the Buggregator service name, for example buggregator, instead of 127.0.0.1.

Why it works

Buggregator includes a fake SMTP server that stores each email instead of delivering it. Any app that can send email over SMTP works with it, so a Rails app, a Laravel app and a Node app can all send to the same inbox.

Sources: Rails guides, Action Mailer configuration and config.action_mailer.delivery_method.

Checked on with Buggregator v2.8.0

Setup in 60 seconds

No registration. No account. Start it and point your app at it.

1

Start Buggregator

One file, installed with one command. The web UI opens on port 8000. Prefer containers? Use the Docker tab.

$ curl -fsSL https://raw.githubusercontent.com/buggregator/server/master/scripts/install.sh | sh
$ HTTP_ADDR=127.0.0.1:8000 \
  SMTP_ADDR=127.0.0.1:1025 \
  VAR_DUMPER_ADDR=127.0.0.1:9912 \
  MONOLOG_ADDR=127.0.0.1:9913 \
  PROXY_ADDR=127.0.0.1:8080 \
  ~/.local/bin/buggregator

The script picks the file for your CPU: Intel/AMD or ARM.

One file for Linux, macOS and Windows, about 40 MB. Nothing else to install.

This run line keeps it on this computer. Without the *_ADDR settings it listens on all network interfaces →

Rather not run a script? Download the file yourself →

Runs on Windows, macOS and Linux, on Intel/AMD and ARM.

Prefer not to do it yourself? Your AI agent can set Buggregator up for you →