Signup and verification codes

Disposable addresses an agent makes for itself, to catch a confirmation email and read the code out of it.

An agent that has to sign up for something needs an address to receive the confirmation at, and its own is usually the wrong one: the mail is not a conversation, it should not sit in the inbox afterwards, and one address used for fifty signups collects fifty lists. So an agent can mint a throwaway address, use it, and let it disappear along with everything it received.

These live on a domain kept apart from every sending domain, and they can only receive, so nothing here can put mail on the wire or touch the reputation of the domains your agents send from.

The flow

Three calls, in order
create_temp_address { ttl_seconds: 900, label: "acme signup" }
  -> { address: "k7f2q9@tmp.mcpmailer.com", expires_at: "...", receive_only: true }

# register at the site with that address, however the agent does that

wait_for_message { address: "k7f2q9@tmp.mcpmailer.com", timeout_seconds: 120 }
  -> the confirmation mail, body and all, for the agent to read the code out of

release_temp_address { address: "k7f2q9@tmp.mcpmailer.com" }
  -> { released: true }

wait_for_message returns mail that arrived before the call as well as mail that arrives during it, so there is no race to lose: triggering the signup first and then waiting is safe, which is the order you would naturally write it in anyway.

Limits

An address lives for ten minutes unless you ask for longer, and the longest you can ask for is a day. How many can be alive at once depends on the plan: three on Free, 25 on Pro, 100 on Startup, 250 on Enterprise. Release one with release_temp_address when you are done with it rather than waiting for it to expire, and the slot comes back immediately.

The tools are create_temp_address, wait_for_message, list_temp_addresses, and release_temp_address, with their arguments in /docs/tools.