mailvina
DocsReceiving email ▾

Guides

API reference

Receiving email

Receive email on your domains: one MX record, email.received webhooks, the API and the dashboard.

Turn on receiving for a verified domain and Mailvina accepts mail for every address at that domain. Each message is parsed (text, HTML, headers, attachments), listed under Emails → Receiving, available over the API and sent to your webhooks as email.received.

Set it up

  1. Open the domain and go to Configuration → Receiving, then click Turn on receiving.
  2. Add the MX record shown there: name = your domain, value feedback-smtp.mailvina.com, priority 10.
  3. Click Check MX. Mail starts arriving as soon as DNS has updated.
An MX record sends all mail for that domain to Mailvina. If the domain already receives mail (Google Workspace, Microsoft 365…), use a subdomain such as inbound.example.com instead.

Get notified

Subscribe a webhook to email.received. The payload has the sender, recipients, subject, Message-ID and attachment details; fetch the full message, including bodies and headers, with `GET /emails/receiving/:id`.

{
  "type": "email.received",
  "created_at": "2026-11-14T10:00:00.000Z",
  "data": {
    "email_id": "b4d17a0e-5f1c-4e8a-9d2b-7c3e6f1a2b90",
    "from": "[email protected]",
    "to": [
      "[email protected]"
    ],
    "cc": [],
    "subject": "Order #1042",
    "message_id": "<CAF…@mail.gmail.com>",
    "attachments": [
      {
        "id": "att_1",
        "filename": "receipt.pdf",
        "content_type": "application/pdf",
        "size": 48213
      }
    ]
  }
}

Limits

Limit
Largest messageSet by your plan, up to 40 MB including attachments. Larger mail is rejected with SMTP 552.
RetentionYour plan’s retention period, at most 30 days. Inbox mail is kept until you delete it.
Unknown domainsMail for domains without receiving turned on is rejected with SMTP 550.

Replies and threads

Replies to emails you sent through Mailvina are linked to the original using In-Reply-To and References, so they appear in the same conversation in the Inbox and share a thread_id in the API.