Use case

Order email for e-commerce

A confirmation the moment someone pays, a shipping notice the moment a label prints, and a post-purchase newsletter that never puts a customer's order history at risk of an unsubscribe. Three different jobs, one API.

Confirm

Templated, not string-built

EuroMail's MiniJinja template engine renders order confirmations server-side with Jinja2-compatible syntax — the same templating most Python or static-site tooling already uses. Pass a template_id and the variables for that order; the recipient gets a fully composed HTML email.

curl -X POST https://api.euromail.dev/v1/emails \
  -H "X-EuroMail-Api-Key: em_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "from": "[email protected]",
    "to": "[email protected]",
    "template_id": "order-confirmation",
    "variables": { "order_id": "8814", "customer_name": "Alex" }
  }'
Transactional (order emails) Marketing (newsletters)
Sent via POST /v1/emails Contact lists & newsletters
Suppression Bounces and complaints only Bounces, complaints, and unsubscribes
Recipient can opt out? No — order status isn't optional Yes, one-click unsubscribe (required)
Why the separation matters

A customer who unsubscribes from your marketing list still needs their shipping confirmation — the two suppression lists are independent by design, so an unsubscribe never silently swallows an order-status email, and a marketing send never goes out to someone who only ever placed one order and asked to be left alone. Post-purchase newsletters run through contact lists with GDPR-compliant double opt-in built in.

Time it right

Schedule up to 30 days out

Add send_at to hold a shipping-delay notice, a delivery-confirmation follow-up, or a review request for a specific moment — up to 30 days ahead. Cancel a scheduled email before it fires and the quota is refunded, so a change of plan (order cancelled, label voided) doesn't cost you a send.

curl -X POST https://api.euromail.dev/v1/emails \
  -H "X-EuroMail-Api-Key: em_live_..." \
  -d '{
    "from": "[email protected]",
    "to": "[email protected]",
    "subject": "How was your order?",
    "html_body": "...",
    "send_at": "2026-08-05T09:00:00Z"
  }'
202 Accepted  { "status": "scheduled" }

Related

  • Template engine

    MiniJinja templates rendered server-side before delivery.

  • Scheduled sending

    Hold a send for a specific time, up to 30 days ahead, with refundable cancellation.

  • Contact lists

    Double opt-in signup forms and list management for post-purchase newsletters.