Catch every email your sites send

Short Leash runs Mailpit on 127.0.0.1:2525 and gives each project its own inbox. Read every message as HTML, text, headers or source; none of it reaches a real address.

Mail is part of Short Leash Pro, as one of its services. Every Pro feature is on for your first 14 days. Pricing

Laravel code sends an order email. It lands at the top of northwind's inbox on Short Leash's Mail screen, and its HTML opens below the list.

An inbox for each project

The SMTP user name picks the inbox, so northwind's mail stays apart from storefront's. Inside a site, Mail shows what that site sent, by its name or its domain.

  • Mailpit, on 127.0.0.1:2525
  • Mail without a user name lands in Unsorted
  • The rail counts the messages you haven't read
Short Leash's Mail screen listing messages caught from northwind, with the inbox filter and the SMTP address 127.0.0.1:2525Short Leash's Mail screen listing messages caught from northwind, with the inbox filter and the SMTP address 127.0.0.1:2525

See it the way your users will

Open a message for its HTML as a mail app shows it, the plain-text version, every header, or the source, so you can check what a spam filter will see.

A caught message open on its Headers tab, listing From, To, Subject and the restA caught message open on its Headers tab, listing From, To, Subject and the rest

Settings for your framework, ready to paste

The Mail screen shows the settings for Laravel, Symfony, Django, Rails and Node. For a Laravel site, Add to .env writes them into the site's .env and keeps everything else.

When a site's .env sends mail to Short Leash under another name, its Overview says so under Needs a look.

# northwind/.envMAIL_MAILER=smtpMAIL_HOST=127.0.0.1MAIL_PORT=2525MAIL_USERNAME=${APP_NAME}MAIL_PASSWORD=null

From your terminal and your assistant

The leash command

leash mail wait --to [email protected]
leash mail links --match verify --first

Every command is in the CLI reference.

Tools your coding assistant can use

get_mailread_mail

Connect Short Leash once with claude mcp add --scope user leash -- leash mcp; Settings › Coding assistants (MCP) has the setup for other assistants. Coding assistants

Questions

How do I catch emails in local development?

Point your app's SMTP settings at 127.0.0.1, port 2525, with your project's name as the user name. Every message lands on Short Leash's Mail screen instead of being delivered.

Does any of the mail get sent?

No. Short Leash keeps every message it catches, and nothing is delivered to real addresses.

How do I keep each project's mail apart?

The SMTP user name picks the inbox. Use the project's name, and its mail stays in its own inbox; mail sent without a user name lands in Unsorted.

Does WordPress's mail() work?

Point an SMTP plugin at 127.0.0.1:2525. WordPress's built-in mail() doesn't go through SMTP, so Short Leash doesn't catch it.

Start free, try Pro for 14 days

Download Short Leash for Mac or Windows. Every Pro feature is on for your first 14 days, with no card and no account.