Test transactional email
Receipts, order and shipping confirmations, invoices, account notices — the mail your product sends after a customer does something is the mail they read most closely. Perenmail gives you a private inbox on a real domain: point your app's transactional email at it, watch it land live, and confirm the template renders, the links resolve, and it authenticates — before a real customer ever sees it.
What counts as transactional email
Transactional mail is sent in response to something a specific customer did, and it carries account-specific data. That's exactly the mail worth checking by hand before it ships.
Receipts & payment confirmations
The email a customer gets after they pay: amount, line items, tax, and the link back to their invoice or order. Easy to break with a template change, and unforgiving when you do.
Order & shipping confirmations
Order placed, order shipped, out for delivery. These carry tracking links and order numbers that have to resolve to the right page for the right account.
Invoices & billing notices
Upcoming renewals, failed payments, dunning, and the invoice itself — often with a PDF attachment you need to open and check, not just trust.
Account & security notices
New sign-in alerts, plan changes, address updates. Low-glamour mail that customers still read closely, so a wrong name or dead link gets noticed fast.
A lot of this mail is fired from background jobs and third-party events rather than a synchronous request. If yours is triggered by a webhook or an async event, the same private inbox catches it whenever it finally arrives.
From checkout to a verified receipt
- 01
Create a private inbox on a real domain
Spin up a registered-only address in one click. It lives on a real domain, so your product's mail server treats it like any other customer — no sandbox SMTP to configure, no special routing to work around.
- 02
Trigger the real flow
Use that address as the customer and run the action end to end: complete a checkout, place an order, change a plan, request an invoice. The transactional mail is sent by your product exactly as it would be in production.
- 03
The mail lands live
A listening indicator and poll heartbeat surface the message at the top of the inbox the instant it arrives — no reload, unread updates in place. Because the inbox is persistent by default, the receipt you triggered earlier is still there when you come back to it.
- 04
Toggle Rendered / Text / Source to inspect the template
Switch between the rendered HTML, the plain-text alternative, and the raw source. Confirm the HTML looks right, the text part isn't empty or garbled, and every link and order number resolved to the correct value — one click opens any link to check where it actually goes.
- 05
Check raw headers and SPF/DKIM/DMARC
Open the full RFC822 view with synthesized SPF, DKIM, and DMARC results to confirm your own outbound mail authenticates the way you expect. Getting this right is what keeps a receipt out of the spam folder. (Raw source, headers, and attachments are on Personal+.)
Perenmail receives inbound mail — it isn't an SMTP sending service and it doesn't intercept your outbound. You point your product's real outbound at a real Perenmail address and inspect exactly what arrives, the same bytes your customer would get. To go deeper on the auth results in step five, read SPF, DKIM & DMARC explained.
See the template three ways, safely
Transactional templates break in quiet ways — a merge field that renders blank, a text part that fell out of sync with the HTML, a link built from the wrong base URL. Perenmail shows you all three views so nothing hides.
Rendered
See the HTML the way a customer would, with every merge field filled in. Catch the blank name, the wrong currency, or the layout that collapses on a real order.
Text
Check the plain-text alternative that clients without HTML fall back to. Confirm it isn't empty, stale, or missing the links and totals the HTML has.
Source
Drop to the raw RFC822 message when you need the exact markup, the headers, or the attachment. This is where you debug the bytes your provider actually sent.
Rendered inside a locked sandbox
HTML bodies render in a locked, script-free sandboxed iframe, which neutralizes stored cross-site scripting from any hostile markup. You can preview a real, full-fidelity transactional email without executing anything it carries — so inspecting the template is never a risk, even when you're testing mail that includes user-supplied content.
Testing a specific slice of your outbound? See webhook email testing for event-driven sends, dig into deliverability with SPF, DKIM & DMARC explained, or read the FAQ to see how the free and Personal+ plans differ on pricing.
Verify the next receipt before a customer does.
Create a private inbox on a real domain, point your product's transactional email at it, and confirm it renders, resolves, and authenticates. Free forever, no credit card.