SMTP testing without running a mail server
SMTP testing means exercising the half of email you control — the mailer config, templates, queue and retries — without a real mailbox on the other end. Tempx runs a capture-only SMTP gateway: point your application's mailer at smtp.tempx.uk port 587 (STARTTLS), authenticate with a tmtp_ credential, and every message is captured into the credential's paired Tempx inbox. Original recipients are preserved on the stored copy, and nothing is ever relayed to the outside world.
How it works
- Create a credential. In your Tempx account, mint an SMTP credential scoped to one of your inboxes — a username and a password shown once.
- Point your mailer at the gateway. Host
smtp.tempx.uk, port 587, STARTTLS, thetmtp_username and password. Any SMTP client works. - Inspect the captured mail. Everything the app “sends” — verification links, password resets, receipts — appears in the paired inbox with headers and the raw source available.
Example: capture a send from Node
const transport = nodemailer.createTransport({
host: "smtp.tempx.uk", port: 587, secure: false, // STARTTLS
auth: { user: "tmtp_…", pass: "…" },
});
await transport.sendMail({ from: "app@yourdomain.test", to: "customer@example.net",
subject: "Reset your password", html: renderResetMail(token) });
// → the message is captured in your Tempx inbox; nothing reaches example.net
Because the send side and the read side share one inbox, the whole loop is testable in one place: your code sends over SMTP, your test (or an AI agent over MCP) asserts on what landed. Stack-specific setup — Laravel, Rails, Django, n8n and more — is on the SMTP integration page.
Why capture instead of a real SMTP server?
- Nothing can go out. A test run with a stale staging database cannot email real customers — the gateway has no onward route.
- No deliverability noise. You are testing your templates and logic, not domain reputation, throttling or spam filtering.
- Assertions stay honest. Captured mail keeps the original recipients and headers, so you can verify who would have received it.
Development vs production
Keep the split explicit: development and CI mail goes to the capture gateway; production mail goes to your real relay and real users. If you also want to test the receiving half (a signup form that triggers the mail), give the flow a disposable inbox and read it over the API — see email testing.