Receive email
Get a receiving address for your project and read what people send to it, by API or webhook.
Your address
Every project has its own domain. Fetch it once and give out any name at it: support@k3x9m2qf7a.inbound.sendsend.email, orders@…, anything. The first call creates it and it never changes after that. The Inbox page in the dashboard shows it too.
What happens to a message
- It is scanned for viruses and spam. Mail with a virus is dropped. Spam is kept and marked
spam: true, without a webhook. - It is stored for your retention period (30 days unless you changed it), then deleted. You can delete it sooner.
- A project keeps up to 2,000 messages a day. Beyond that, new mail is dropped until tomorrow.
Read it
curl https://api.sendsend.email/v1/received-emails \
-H "Authorization: Bearer $SENDSEND_API_KEY"The list has no bodies. Retrieve one message for its text, HTML and headers, or download the original and its attachments. Keys need the inbound:manage scope.
Get told when mail arrives
Add the email.received event to a webhook. The event carries who sent it, who it was for, the subject and the attachment list, but not the body: fetch that with the id.
Reply
Send a normal email to the sender, from a verified domain. To keep it in the same thread, pass In-Reply-To and References in headers with the received message_id.
Use your own domain
Instead of the project address, receive at support@support.acme.com. Add the domain (or use the Inbox page) and publish the two records it gives you:
- an MX record pointing the domain at us, which must be the only MX at that name;
- a TXT record at
_sendsend-inbound.<domain>that proves you own it.
We check every minute, and the domain turns active once both are right. Everything else works the same: the Inbox, the API and the email.received webhook.
acme.com itself here, all of its mail arrives in SendSend and none reaches the mailboxes it has now. A subdomain such as support.acme.com leaves your normal mail alone.