Sending is half a conversation. Point your MX at Drin and every reply, forward and incoming message is parsed into clean JSON — headers, body, attachments and auth results — and delivered to your webhook.
# POST → your webhook · type "email.received" { "type": "email.received", "data": { "id": "in_3kP9xa", "from": "user@acme.com", "to": "support@drin.run", "subject": "Re: ticket 4821", "text": "Thanks, that fixed it.", "html": "<p>Thanks, that fixed it.</p>", "attachments": [{ "name": "log.txt", "size": 1840 }], "auth": { "spf": "pass", "dkim": "pass", "dmarc": "pass" } } }
You never parse a MIME tree or babysit an SMTP server. Drin receives the message, validates it, and hands you exactly the fields you would have extracted yourself — only correctly, every time.
Use a predefined Drin address, or add an MX record so your own domain receives at Drin. Verification is guided in the dashboard.
Drin accepts the SMTP delivery, runs SPF / DKIM / DMARC checks, then parses headers, body and attachments into structured fields.
The parsed message is posted to your webhook as an email.received event — and lands in the inbox view in the dashboard. No MIME parsing on your end.
Headers, subject, text and HTML bodies arrive as ready-to-use fields. Drin does the MIME decoding so your code never touches a raw envelope.
Every attachment is stored and listed with name, type and size, each retrievable by a download URL when you need the bytes.
Receive on a predefined Drin address or on your own custom domain via MX — route messages to the right project automatically.
SPF, DKIM and DMARC results are evaluated as the message lands and included in the payload, so you can act on spoofed mail.
text, html, headersemail.receivedPoint your MX at Drin and receive parsed, validated messages on your webhook. Test freely; production starts at $3 a month.