← Blog

Inboxes, in preview

Throwaway email addresses for testing sign-up, verification and magic-link flows, with the links and codes already pulled out for you.

Darren Royle @royletron 2 min read

Preview deployments solved half of a testing problem. You can run a branch somewhere real, and Hookman makes sure its webhooks land there. But the moment you try to test sign-up, an email-verification step or a magic link, you’re back to a shared mailbox, plus-addressing tricks, or skipping the flow entirely.

Inboxes is the other half, and it’s in preview now.

The idea

You ask for an address and get one back. Anything sent to it is stored, and you can read it through the API, the CLI or the dashboard.

Terminal window
ADDR=$(hookman inbox create --ttl 2h)
# …sign up on pr-42.acme.app using $ADDR…
hookman inbox wait "$ADDR" --json

wait blocks until mail arrives (or the timeout passes) and prints the newest message. Because most test emails exist to deliver a link or a code, Hookman extracts those for you: the JSON has links and codes arrays, so a test script doesn’t need to parse HTML.

What you get

  • Addresses on in.hookman.dev (in.staging.hookman.dev on staging), unguessable and created on demand.
  • Long-polling. The API holds a request open for up to 30 seconds waiting for new mail, so tests don’t need a polling loop.
  • Attachments. Files that arrive with a message are stored with it, listed in the message and downloadable from the dashboard, API and CLI (hookman inbox attachments).
  • Automatic clean-up. Inboxes expire (30 days at most, and you choose the TTL). Deleting one, or letting it expire, removes its messages and attachments. Messages are also kept for 7 days on Pro and 30 on Team.
  • The raw message is available too, as an .eml.

Limits

Inboxes are for Pro and Team plans.

ProTeam
Active inboxes50500
Message retention7 days30 days
Max message size10 MB25 MB
Messages a month10,000100,000

Why we built it

We’re the first customer. Our own acceptance run used to sign in with a standing, pre-verified account because it couldn’t complete email verification. It now signs up a fresh account against staging on every deploy and verifies it through an inbox.

What preview means

It’s switched on per organisation while we watch how it behaves, so you might not see it in your dashboard yet. It’s sending-free by design (inboxes only receive), and there’s no custom-domain support yet. If you want early access or something’s missing, tell us.

More from the blog