Temp Mail
Receive-only SMTP · custom domains · wildcard MX · API keys

Documentation

Temp Mail is a receive-only temporary email platform. Claim your own domain, create mailboxes, receive messages for 1 hour, and manage everything with an API key.

Quickstart

  1. On the Claim page, enter an apex domain like example.com.
  2. Create the MX record shown, pointing to mailer.exzork.me.
  3. Click Check MX, then Claim domain & get API key.
  4. Save the API key immediately. It is shown only once.
  5. Open Inbox, create a mailbox, and start receiving mail.
Important: enter a domain, not a subdomain. Use example.com, not mail.example.com.

Domains & ownership

  • No password login. Ownership is proven by the API key issued on first claim.
  • If a domain is new and MX is valid, the API returns an API key once.
  • If the domain is already claimed, the API returns conflict and never re-issues the key.
  • One API key can own multiple domains via authenticated domain attach.
  • An API key can only list/read/delete mailboxes and messages under its own domains.

Normal domain claim

Claim example.com to receive addresses like hello@example.com.

example.com.    IN MX 10 mailer.exzork.me.

Wildcard domains (`*.domain.tld`)

If you want mailboxes on any subdomain, enable wildcard mode when claiming the domain. That stores the claim as *.example.com.

DNS requirement for wildcards

A root MX alone is not enough for subdomain recipients. Mail for user@shop.example.com looks up MX on shop.example.com. To cover all subdomains, add a wildcard MX record too:

example.com.      IN MX 10 mailer.exzork.me.
*.example.com.    IN MX 10 mailer.exzork.me.

In many DNS panels the host field is simply * for the wildcard record and @ for the apex domain.

  • Apex only: receive *@example.com
  • Wildcard claim: receive *@any-subdomain.example.com
  • Keep both MX records if you want root + all subdomains.

REST API

Base URL: https://mailer.exzork.me

Public endpoints

GET  /healthz
GET  /api/v1/meta
GET  /api/v1/stats
POST /api/v1/domains
POST /api/v1/domains/verify

Authenticated endpoints

Send header X-API-Key: tm_... or Authorization: Bearer tm_...

GET    /api/v1/domains
POST   /api/v1/domains/add
POST   /api/v1/domains/{id}/verify
GET    /api/v1/mailboxes
POST   /api/v1/mailboxes
DELETE /api/v1/mailboxes/{address}
GET    /api/v1/mailboxes/{address}/messages
GET    /api/v1/messages/{id}
DELETE /api/v1/messages/{id}

Examples

# Claim domain (returns api_key only if new)
curl -X POST https://mailer.exzork.me/api/v1/domains \
  -H 'content-type: application/json' \
  -d '{"domain":"example.com"}'

# Claim wildcard domain
curl -X POST https://mailer.exzork.me/api/v1/domains \
  -H 'content-type: application/json' \
  -d '{"domain":"*.example.com"}'

# Create random mailbox
curl -X POST https://mailer.exzork.me/api/v1/mailboxes \
  -H "X-API-Key: $KEY" \
  -H 'content-type: application/json' \
  -d '{"random":true,"domain":"example.com"}'

# List messages
curl https://mailer.exzork.me/api/v1/mailboxes/hello@example.com/messages \
  -H "X-API-Key: $KEY"

# Delete one message
curl -X DELETE https://mailer.exzork.me/api/v1/messages/123 \
  -H "X-API-Key: $KEY"

Retention, delete API, and stats

  • Received messages live for 1 hour, then a background scheduler purges them.
  • You can also delete immediately with DELETE /api/v1/messages/{id}.
  • Stats counters are stored separately and are not reduced when messages expire or are deleted: today count, total count, and top 10 masked headers with live time remaining.
  • Header stats show only From + Subject (no To). First 10 characters are visible and the rest is masked, for example noreply@gi*** and Your GitHu***.

SMTP

Inbound only. Point domain MX to mailer.exzork.me. The server accepts mail on port 25. There is no outbound sending / open relay.