mailvina
DocsSending email ▾

Guides

Sending email

Everything you need for transactional email with POST /emails.

Basic send

curl -X POST 'https://api.mailvina.com/emails' \
  -H 'Authorization: Bearer mv_xxxxxxxxx' \
  -H 'Content-Type: application/json' \
  -d '{
  "from": "Acme <[email protected]>",
  "to": [
    "[email protected]"
  ],
  "subject": "Welcome",
  "html": "<p>Hi!</p>",
  "text": "Hi!"
}'

Test addresses

These reserved recipients simulate outcomes and never leave Mailvina. They work with the sandbox sender.

AddressOutcome
[email protected]email.delivered
[email protected]email.bounced (permanent)
[email protected]Delivered, then email.complained
[email protected]email.delivery_delayed, then delivered on retry
[email protected]email.suppressed

Scheduling

Pass scheduled_at as an ISO 8601 timestamp up to 30 days ahead. Change it with PATCH /emails/:id or cancel with POST /emails/:id/cancel.

Attachments

{
  "attachments": [
    { "filename": "invoice.pdf", "content": "<base64>", "content_type": "application/pdf" }
  ]
}

Idempotency

Send an Idempotency-Key header. Repeating the request with the same key within 24 hours returns the original email ID instead of sending again.

Tags and headers

tags are name/value pairs echoed in webhooks. headers adds custom MIME headers.