Receiving email
Receive email
Route inbound mail into a Bytloop mailbox so your team can reply.
Inbound email lets a mailbox on one of your verified domains accept
messages from outside. Once configured, incoming mail is parsed,
threaded with any existing conversation, labelled, and dropped into the
matching mailbox in /mail — plus fired at any webhook endpoint
subscribed to email.received.
Prerequisite: verified domain#
Inbound reuses the same domain verification the sending API uses. If
send.acme.com is verified, you can accept mail at any address on it —
support@send.acme.com, hi@send.acme.com, whatever you name a mailbox.
Follow Verify a domain first if you have not
already.
1. Add a mailbox#
In Settings → Mailboxes click New mailbox and give it a
local part (support, hello, contact). Bytloop assigns the full
address on your verified domain. Pick a display name and, optionally, a
signature block that appends to outbound replies from this mailbox.
2. Publish the MX record#
Every domain that accepts mail needs an MX record telling the sending world where to deliver. Add this record at the same DNS host you used for domain verification:
| Type | Host | Priority | Value |
|---|---|---|---|
| MX | send.acme.com | 10 | inbound.bytloop.mail. |
If the domain already has MX records pointing to another provider, you
have to decide who wins — MX records are per-domain, not per-address.
For a subdomain dedicated to Bytloop (send.acme.com) this is usually
fine; for the root domain (acme.com) it means Bytloop takes over all
inbound for the entire domain.
DNS propagation for MX changes is normally a few minutes but the TTL you had on the previous record sets the ceiling.
3. Verify inbound is live#
Send an email to the new mailbox from any outside address. Within a few seconds it should appear in /mail threaded under whatever the subject line is. If it does not:
- Check the domain's inbound status in Domains — the card turns green once Bytloop has seen mail arrive successfully.
- Confirm the MX record with
dig +short MX send.acme.com— it should return10 inbound.bytloop.mail.and nothing else. - Look for a bounce back to the sender's inbox; a mailbox provider that
can't reach
inbound.bytloop.mailreturns a delivery-status notification with the exact reason.
What Bytloop does with the message#
Once accepted, Bytloop:
- Parses MIME parts (HTML, text, attachments, inline images) and normalises them for the inbox view.
- Threads the message under any existing conversation matched by
In-Reply-To/Referencesheaders or subject heuristics. - Applies any filters configured on the mailbox — labels, auto-archive, out-of-office replies.
- Fires an
email.receivedwebhook to every subscribed endpoint.
Attachments over the per-plan cap (see Rate limits) are stored but not surfaced inline; the sender is not bounced.
Programmatic access#
If you would rather receive inbound events over your own HTTPS endpoint
than through the shared inbox, subscribe to email.received on a
webhook. The payload includes the parsed body, all
headers, and download URLs for attachments (signed, expire in 24h).
Next#
- Set up filters and auto-responders so common inbound patterns are handled without a human.
- Wire a webhook if you want inbound events in your own system as well.