CLOSED BETA · FOR SIGNUP, OTP AND MAGIC LINKS

Email testing
for SaaS teams.

Give every test its own inbox. Wait for the email, finish the flow with its code or link, and run the same test in production.

TEST EVENTS FREE A MONTH
300
DEVELOPER PLAN
$19
EMAIL DOMAIN ON FREE
1

acme-qa.devhelmmail.com

ActiveAssigned
Any address @acme-qa.devhelmmail.comLast message 14:06 UTCKept 14 days
Receiving
Acme
Your Acme verification code
To signup+7f3a@acme-qa.devhelmmail.com
12s ago
Acme
Your Acme verification code
To signup+7f39@acme-qa.devhelmmail.com
2m ago
Acme Security
Reset your Acme password
To reset+7f38@acme-qa.devhelmmail.com
6m ago
Acme Billing
Receipt for invoice INV-2291⌁
To billing+7f37@acme-qa.devhelmmail.com
1h ago
Newest first · 50 per page

Your Acme verification code

Acme <no-reply@acme.dev> → signup+7f3a@acme-qa.devhelmmail.com
7 Oct 2026 · 14:06:22 UTC
418302
Found in the text and HTML parts, counted once
Hi Ada,

Enter this code to finish signing up to Acme:

418302

This code expires in 10 minutes.

Acme

Links

0

    Attachments

    0

    None on this message

    AUTOMATE

    Automate tests in minutes.
    In the language you test in.

    Give each test a fresh address, trigger the email, and wait. One call returns it with the code and links already pulled out, from TypeScript, Python, the CLI or plain HTTP.

    IN THREE STEPS
    1Pick any address
    A new, empty inbox on your domain for every run. Nothing to create first.signup-3f9a1c2e@acme-4j4n.devhelmmail.com
    2Trigger the email
    Your app sends it the way it would to a customer, through your own email provider.“Your Acme verification code”
    3Wait for it
    Returns as soon as the email lands, or fails with a 408 at your timeout.
    200otp[0].value"482913"
    408WAIT_TIMEOUT · nothing in 60 s
    WORKS WITH
    PlaywrightCypressSeleniumVitestJestpytestRSpecGitHub ActionsGitLab CIanything that speaks HTTP
    TypeScript and Python SDKsPlus the devhelm CLI and a REST API for anything else.
    Clean up in one callClear the inbox in teardown, so runs never mix.
    Match the right emailFilter by subject. Older mail never matches.
    Your own timeoutUp to 120 s per wait. A 408 means nothing came.
    Safe in parallelEvery new address is a separate inbox.
    Inject test messagesAdd mail through the API, with no provider.

    INSPECT

    Inspect every message.
    Body, headers, codes and links.

    Open any email to see exactly what your users get: the HTML and text body, every header, and the codes and links we pulled out.

    IN EVERY MESSAGE
    1Every address, one inbox
    All mail to your domain, newest first
    2HTML and text body
    What your users read, as it was sent
    3Codes and links
    Pulled out of every message for you
    4Headers
    From, To, Reply-To and every raw header
    5Raw source
    The original message, as it arrived
    History by plan3 days on Free, 7 on Developer, 30 on Team, 90 on Business, 365 on Enterprise.
    Same data in the APIEvery message, header, code and link, for your tests and tools.
    Private to your teamOnly your workspace can read your domain’s inboxes.

    CAPABILITIES

    Test every email you send.
    No mail server, no shared inbox.

    Everything an email test needs, on an assigned domain that works from your first request.

    01INBOXES
    Assigned domainAny local-part receives mail immediately. No inbox to create.
    TEAM AND UP
    Your own domainReceive on a subdomain like test.acme.dev with one MX record.
    SAME PLAN
    Webhook inboxesCapture the webhooks your flow sends, next to its emails.
    02MESSAGES
    Codes and links extractedOTP codes and links come out of every message, ready for your test.
    Wait with a timeoutBlock until the right email arrives, or get a 408 when it doesn’t.
    SOON
    Spam scoreSee how spam filters would score each message before customers do.

    FLOWS

    Cover the flows users depend on.
    From signup to team invites.

    If a user waits for an email to get in, a test should too. These are the flows teams cover first.

    Prove new users can verify their emailSign up with a fresh address, read the code from the email, and land on onboarding.
    THE TEST CHECKS THAT
    The email arrives within 30 seconds
    The code in it is accepted
    The new user lands on onboarding
    Run it in CI, then every few minutes in production as a browser check.Browser checks →

    PLATFORM

    Part of the DevHelm platform.
    Test business flows end to end.

    Run the same signup test as a browser check every few minutes, with email and webhook inboxes, alerts and AI triage on one account.

    ON ONE ACCOUNT
    Email inboxesWebhook inboxesBrowser and API checks20 alert integrationsStatus pagesVendor statusAI SRE (founding offer)
    Browser checks →

    BUILD OR BUY

    Stop reading the QA Gmail.
    Use inboxes built for tests.

    A shared mailbox or a public inbox works for one test. It breaks once tests run in parallel, in CI and in production.

    DevHelm.ioWorkspace-only reads, built for tests
    A shared GmailOne team mailbox, read over IMAP
    A public inboxA free disposable address
    ADDRESSES
    A new address for every test
    DevHelmYes. Any address, instantly
    A shared GmailPlus-aliases on one mailbox
    A public inboxAny name, on a public domain
    Who can read the mail
    DevHelmYes. Your workspace only
    A shared GmailEveryone with the password
    A public inboxAnyone who guesses the address
    Your own domain
    DevHelmYes. On Team and up, with one MX record
    A shared GmailOnly with Google Workspace
    A public inboxNot available
    GETTING THE CODE
    Waiting for the email
    DevHelmYes. One call, 408 at your timeout
    A shared GmailPoll IMAP in a loop
    A public inboxPoll the page in a loop
    Reading the code or link
    DevHelmYes. Extracted for you
    A shared GmailA regex you maintain
    A public inboxA regex you maintain
    Tests running in parallel
    DevHelmYes. A unique address per run
    A shared GmailTests read each other’s mail
    A public inboxWorks, in public
    IN PRODUCTION
    Scheduled checks and alerts
    DevHelmYes. Browser checks, 20 alert integrations
    A shared GmailBuild it yourself
    A public inboxBuild it yourself
    Message history
    DevHelmYes. 3 to 365 days, by plan
    A shared GmailUntil someone cleans it up
    A public inboxOften deleted within hours

    PRICING

    300 test events free.
    Paid plans from $19.

    Events are emails and webhook requests combined. Add Testing to any monitoring plan, Free included.

    Free
    $0forever
    For trying webhook and email tests.

    Includes

    • 3 webhook inboxes
    • 1 email domain
    • 300 events a month
    • 3-day history
    Start free
    Developer
    $19/ month
    For one developer’s test suite.

    Everything in Free, plus

    • 10 webhook inboxes
    • 3,000 events a month
    • 7-day history
    Start Developer
    Business$149/ month
    • 500 webhook inboxes · 10 email domains
    • 300,000 events a month
    • 90-day history
    EnterpriseCustom
    • Unlimited inboxes, domains and events
    • 365-day history
    • Hands-on setup with our team
    EVERY PLAN
    Wait APITypeScript and Python SDKsCLIOTP and links pulled from emailsNo usage charges

    No usage charges on Testing. When the included events are used, new ones stop.

    Webhook and Email Testing are in beta.

    FAQ

    Questions,
    answered.

    What teams ask before they move their email tests to DevHelm.

    Still deciding?

    We’ll set up your first email test with you on a call, and answer the rest.

    Your workspace gets its own domain, like acme-4j4n.devhelmmail.com. Any address on it is an inbox, so there is nothing to create first. The SDK’s address helper gives every test run a fresh, empty one.

    Test the emails your users wait for.

    300 test events a month free, with webhook inboxes on the same plan.