DocsSending email ▾
IntroductionQuickstartAuthenticationSending emailDomainsAPI keysSMTP relayWebhooksTemplatesBroadcastsAudiences & contactsSuppression listOpen & click trackingIP warm-upDeliverabilityAnalytics & logsLimits & errorsSelf-hosting & configurationEmailsDomainsAudiences & contactsBroadcastsTemplatesWebhooksAPI keys, suppressions, metrics
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.
| Address | Outcome |
|---|---|
[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.