Guides

Send and receive mail

The Identity's real mailbox – reading it, sending from it, and who it may write to.

Every Identity has a real mailbox: orderbot@tigby.eu, receiving from anyone, readable over REST and IMAP.

Read

curl -H "Authorization: Bearer $TIGBY_API_KEY" \
  https://api.tigby.eu/api/identities/orderbot/messages

Newest first, with sender, subject, preview, the subaddress tag the message came in on, and the origin verdict recorded on delivery – DMARC alignment, falling back to SPF on the return path. GET /api/identities/orderbot/messages/{id} returns one message with headers and decoded bodies.

Both read the Inbox. Mail the spam filter files to Junk is not listed and not readable by id, and neither is a message an IMAP client deleted – a mail client's delete moves the message to Trash rather than removing it. Everything the mailbox holds, each message labelled with the folder it was in, is in the data export.

Tags

The Mailbox also receives on orderbot+shop@tigby.eu – use one tag per service the agent signs up to, and the agent can tell them apart by the tag on each message.

IMAP

The per-mailbox password is shown once, by GET /api/identities/orderbot/identity-key – the same call that hands over the first Identity Key, and never the status read. Lost it? POST /api/identities/orderbot/mailbox/password sets a new one and returns it – the only response that ever carries it.

Send

curl -X POST -H "Authorization: Bearer $TIGBY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to": ["anna@kunde.de"], "subject": "Order 4711", "text": "…"}' \
  https://api.tigby.eu/api/identities/orderbot/messages/send

Every send – REST or SMTP – passes the same policy point: the recipient must be an Allowed Recipient, and the Org's send limit must have room. A refusal carries the same stable code on both doors, plus an email.recipient_blocked Event.

Allowed Recipients

Outbound mail goes only to addresses or domains on the allowlist; inbound is never restricted. Entries come from two sources:

  • Manual – an Admin Key adds an address (anna@kunde.de) or a domain (@kunde.de) on POST /api/allowed-recipients. Permanent, counted against the Plan. Freemail and disposable domains are refused as whole domains.
  • Automatic – a sender whose mail reached the Identity and proved its origin is granted back automatically. Expiring, refreshed by each further verified mail, uncounted.

The agent itself can read the list, never change it.

Outbound agent mail is marked as coming from an AI agent by default (EU AI Act, Art. 50). Switching it off requires an explicit acknowledgement in the request and is recorded as an Event either way.