Multiple local SMTP servers
Create separate server profiles, ports, credentials, and inboxes for different apps or test suites.
Local SMTP mail catcher for macOS. Catch, inspect, and debug emails without sending them.
This message was captured locally before it could leave your machine.
Open Mail Catcher listens on a local SMTP port, receives the full MIME message, stores it in SQLite, and updates the inbox immediately.
import nodemailer from "nodemailer";
const transport = nodemailer.createTransport({
host: "127.0.0.1",
port: 1025,
secure: false,
auth: undefined
});
await transport.sendMail({
from: "[email protected]",
to: "[email protected]",
subject: "Test email",
html: "<h1>Hello</h1><p>This was caught locally.</p>",
text: "Hello. This was caught locally."
});Designed around fast local feedback, clean message inspection, and safe defaults.
Create separate server profiles, ports, credentials, and inboxes for different apps or test suites.
Review HTML preview, text body, headers, source, recipients, read state, stars, and attachments.
Captured MIME attachments are stored locally with filename, type, size, checksum, and save actions.
Messages stay on your machine. Open Mail Catcher does not relay mail, sync cloud data, or run telemetry.
The docs cover first-run setup, framework examples, multiple server profiles, local SMTP AUTH, attachments, and common port conflicts.
Open documentationConfigure your local app with the default SMTP server.
No relay. No cloud. No telemetry. The app exists for local development and testing, not production email delivery.
Grab the latest development build and start catching local email at 127.0.0.1:1025.