Spin up a disposable email address that actually receives mail, then poll it from your test suite or your own script. Built for verification-email testing, signup-flow QA, and anywhere you'd otherwise burn a real inbox.
Free — no API key required to create a mailboxNo signup, no account: random private addresses for tests. Need a permanent inbox for an AI agent instead? How we compare to Resend Inboxes.
# create a mailbox (default: expires in 15 min)
curl -X POST https://receivemail.dev/mailboxes
# => {"address":"a1b2c3d4e5f6@receivemail.dev","expiresAt":"...","secret":"..."}
# now trigger your app's verification email to that address, then poll:
curl https://receivemail.dev/mailboxes/a1b2c3d4e5f6@receivemail.dev/messages \
-H "Authorization: Bearer <secret from above>"
# => {"address":"...","messages":[{"from_address":"...","subject":"...","body_text":"..."}]}
Remote MCP server, no key needed. Tools: create_mailbox, wait_for_email, list_messages.
claude mcp add --transport http receivemail https://receivemail.dev/mcp
{ "mcpServers": { "receivemail": { "url": "https://receivemail.dev/mcp" } } }
Plenty of signups ask for a phone number after the email. sms-florin rents real UK numbers that receive the verification SMS — same idea as this, by API or in the browser, pay per code.
| Endpoint | Description |
|---|---|
POST /mailboxes | Create a new address. Optional {"ttlMinutes": 1-60} body, default 15. Returns the address and a per-mailbox secret — save it, it's the only way to read this mailbox later. |
GET /mailboxes/:address | Mailbox metadata (created/expiry). Needs the mailbox's own secret as a Bearer token. |
GET /mailboxes/:address/messages | Last 50 messages received, newest first. Same secret. |
GET /mailboxes/:address/wait | Long-poll: waits up to timeout seconds (max 25) for a message newer than since (ISO 8601), then returns it, or {"timed_out":true}. Same secret. |
@receivemail.dev accepts mail, even ones never explicitly reserved — but only a reserved address gives you a secret to read it backThe free API stays free. Paid plans give you an API key instantly after checkout — send it as Authorization: Bearer rmk_… on POST /mailboxes.
Pro — $7/month: mailboxes that live up to 24h (vs. 60 min free), 120 creates/min per key instead of the per-IP limit (for CI with many parallel jobs), and every message comes back with the verification code already extracted in an otp field — no regex in your tests.
Pro + Webhooks — $19/month: everything in Pro, plus pass a webhookUrl when you create a mailbox and every email that lands is POSTed to you the moment it arrives — {address, from, subject, bodyText, otp, receivedAt}, HMAC-signed with your key. Stop polling.
Want something else — private domain, HTML attachments? Tell us what you'd actually use, free to ask:
otp field and webhooks