Receiving mail
There is nothing to call: mail sent to an inbox address is received on its own. This page explains what happens to it. To read it, see Reading mail and Waiting for mail.
1. Accepted or rejected
Section titled “1. Accepted or rejected”Mail is accepted only when all of these are true:
- the recipient is the address of a live inbox (case-insensitive, exact match);
- the account is active (a
sandboxaccount before itsexpires_at, orclaimed) and its receiving is not paused; - the raw message is at most 10 MiB (10,485,760 bytes);
- the account is under its monthly receive cap: 1,000 messages for
sandbox, 5,000 forclaimed(not available yet), per UTC calendar month, all inboxes together.
Otherwise the mail is rejected during delivery, permanently, with one text for every reason. The sending server sees 555 5.7.1 mailbox unavailable. (Replyz sends the text; Cloudflare adds its own code in front). The sender cannot tell why, and the agent is not told about rejected mail.
If handling a message fails on Replyz’s side, the sending server gets a temporary failure (421 4.3.0) and retries later, as mail servers do. A retried message is counted once.
abuse@youreplyz.com and postmaster@youreplyz.com are never agent inboxes.
2. Stored in the EU
Section titled “2. Stored in the EU”The original message is stored as received, in EU-jurisdiction storage. Parsed messages, threads, events and attachments are stored in the EU too. See Security and privacy.
3. Turned into a message
Section titled “3. Turned into a message”A background step parses each accepted message, so a message becomes readable a little after its received_at. In rare cases a message that keeps failing to process (25 retries, about 19 hours) is not stored and nobody is alerted; handling for this is planned. It builds:
| Field | What it holds |
|---|---|
received_at |
When Replyz accepted the mail (not the sender’s Date header) |
from |
The first address of the From header, lowercased. Not verified: it can be forged |
to |
Addresses of the To and Cc headers, lowercased (at most 100) |
subject |
Invisible characters removed; null when empty |
text |
What a person would see: the HTML converted to text with hidden content removed, or the plain-text part when there is no visible HTML. Links appear as link text <https://…> |
reply_text |
Only the new part of a reply: cut at the first quote header (“On … wrote:” and its forms in several languages, “Original Message” lines, Outlook’s header block) or a signature line (-- ). The whole text when nothing new is left, for example in a forwarded message |
snippet |
The first 200 characters of reply_text (or text), whitespace collapsed |
otp_like |
true when the message looks like a verification-code mail |
injection_risk, safety |
Signs of prompt injection. See Untrusted content and safety |
sender_trust |
Always unauthenticated in this version |
spam_score |
Cloudflare’s spam score when present; informational, Replyz does not act on it |
attachments |
Up to 50 per message, never opened. See Reading mail |
Long fields are capped (for example text at 256 KiB and reply_text at 64 KiB); a cut adds the signal content_truncated. The original stays stored and can be read with include=raw (up to 2 MiB).
Mail that cannot be parsed
Section titled “Mail that cannot be parsed”If the parser refuses the structure of a message, the message is still stored so the agent sees that something arrived: from and subject are null, text is empty, injection_risk is medium, and safety.signals holds parse_failed. Read the original with GET /v1/messages/{id}?include=raw.
4. Threaded
Section titled “4. Threaded”Threads belong to one inbox. A new message joins a thread when its In-Reply-To or References header points to an earlier message of that inbox; otherwise when it has the same subject (ignoring prefixes such as Re: and Fwd:) and shares a participant with a thread active in the last 30 days; otherwise it starts a new thread.
5. Duplicates
Section titled “5. Duplicates”The same mail delivered twice to the same inbox is stored once (same Message-ID, recipient and body). A copy with the same Message-ID but a different body is stored separately, so a forged copy cannot hide the real mail. One mail sent to two inboxes is stored once in each.
6. Announced
Section titled “6. Announced”A message.received event is added to the event feed, and every open wait and events?wait= of the account wakes up and checks again.
Not available yet
Section titled “Not available yet”- Verified senders (
sender_trustother thanunauthenticated). - Automatic deletion after the retention periods. See Security and privacy.
Not offered: content-based spam rejection, custom domains, webhooks, sending of any kind.