Email sandbox and mock SSO for developers. Nothing reaches real users.
Test the email and sign-in flows your users depend on
Point your staging and test environments at Testlie. Every email lands in a shared inbox where your team can preview it and assert on it from CI, and mock OIDC and SAML identity providers let you test single sign-on with any user, group or claim you need.
How it works
From first email to green build in minutes
- 1
Point SMTP at us
Create an inbox and paste its SMTP host, port and credentials into your app's mail settings. No code changes, any language or framework.
SMTP_HOST=smtp.testlie.com
- 2
Inspect what was sent
Messages appear live. Preview the HTML at phone, tablet and desktop widths, read the raw source and headers, and open attachments.
HTML · Text · Raw · Headers
- 3
Automate it in CI
Use an API key to wait for a message in your end-to-end tests, then assert on the subject, recipients, links and body.
GET /messages/wait?to=…
Features
Everything you need to test email and SSO
One place to see, check and automate the mail your applications send and the sign-ins they accept, without emailing a real person or touching a real identity provider.
Inboxes & projects
Group inboxes by project, one per app or environment, each with its own SMTP credentials, inbound address and message limit.
Mock identity providers
Spin up fake OIDC and SAML 2.0 identity providers, define test users with groups and custom claims, and watch every request in a live activity log.
HTML preview at any width
Render the HTML body in a sandboxed frame and switch between phone, tablet and desktop widths to catch layout bugs.
Spam analysis
Score messages with SpamAssassin and see which rules fired, so your emails stay out of real users' junk folders.
HTML compatibility check
Find the HTML and CSS features that popular clients such as Gmail, Outlook and Apple Mail do not support, before you ship.
Raw source, headers & attachments
Read the message exactly as it was received, every header, the plain-text part, and download attachments or the .eml file.
Teams & roles
Invite teammates by email as owners, admins or members. Admins manage inboxes and keys; members read messages.
Single sign-on
Connect Okta, Microsoft Entra ID, Google Workspace or any OIDC or SAML 2.0 identity provider per team.
Two-factor authentication
Protect accounts with authenticator-app codes and backup codes, alongside GitHub, Google and Microsoft sign-in.
API & wait-for-message
A REST API with team API keys, including a long-polling endpoint that returns as soon as the email your test expects arrives.
Webhooks & forwarding
Notify your services when mail arrives, and forward a captured message to a real address when you need to see it in a client.
Live updates
New messages appear the moment they arrive, without refreshing, for everyone watching the inbox.
Self-hosted
Run Testlie on your own infrastructure with Docker and Postgres. Your test data never leaves your network.
For developers
Send with any SMTP client. Assert with one HTTP call.
Your app keeps its normal mail code. Your tests ask the API for the message they expect, and fail fast when it does not come.
import nodemailer from "nodemailer";
// Credentials come from the inbox's SMTP settings page.
const transport = nodemailer.createTransport({
host: "smtp.testlie.com",
port: 587,
auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS },
});
await transport.sendMail({
from: "app@example.com",
to: "new-user@example.com",
subject: "Welcome aboard",
html: "<h1>Hi!</h1><a href='https://app.example.com/verify'>Verify</a>",
});# Block until the welcome email arrives (up to 30 s), then assert on it.
curl -sf -H "Authorization: Bearer $API_KEY" \
"https://testlie.com/api/inboxes/$INBOX_ID/messages/wait?to=new-user@example.com&subject=Welcome&timeout=30" \
| jq -r '.message.subject'
# Fetch the full message (HTML, text, headers, attachments).
curl -s -H "Authorization: Bearer $API_KEY" \
"https://testlie.com/api/messages/$MESSAGE_ID"Stop emailing real people from staging
Create an account, set up your first inbox and send a test message in under a minute.