Savannah Cloud

Email System

Send transactional email via Resend using the job queue or direct API.

Savannah Cloud sends email via Resend. The sender domain savannahcloud.com is verified on Resend via Cloudflare DNS.

Default sender: noreply@savannahcloud.com


Prerequisites

Set RESEND_API_KEY in your .env:

RESEND_API_KEY=re_xxxxxxxxxxxxxxxxxxxx
EMAIL_FROM=Savannah Cloud <noreply@savannahcloud.com>

Send Email via Job Queue

The recommended approach — queued with retry logic.

curl -X POST https://api.savannahcloud.com/jobs \
  -H "X-API-Key: sc_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "send_email",
    "payload": {
      "to": "user@example.com",
      "subject": "Welcome to Savannah Cloud",
      "body": "Your account is ready."
    },
    "max_retries": 3
  }'

Payload fields:

FieldRequiredDescription
toYesRecipient email address
subjectYesEmail subject line
bodyYesEmail body (plain text or HTML)
fromNoOverride sender. Defaults to EMAIL_FROM env var

Custom Sender Domains

Once a custom domain is verified (see Custom Domains), it appears as a From option in the dashboard email compose UI at /email.

To send from a custom domain via API, pass from in the payload:

{
  "type": "send_email",
  "payload": {
    "to": "customer@example.com",
    "from": "hello@acme.com",
    "subject": "Order confirmed",
    "body": "Your order #1234 has shipped."
  }
}

The domain acme.com must be verified in your org before using it as a sender.


Dashboard

The /email page provides a 3-column inbox UI:

  • Compose — recipient, subject, body, from-selector
  • Sent folder — history of sent emails with status
  • From selector — shows mail.savannahcloud.com as default + all org-verified domains

Resend Webhook (Delivery Events)

Resend can POST delivery events (delivered, bounced, complained) to your API. Configure in Resend dashboard with:

https://api.savannahcloud.com/webhooks/resend

Quick Reference

# Send email via job queue
curl -X POST https://api.savannahcloud.com/jobs \
  -H "X-API-Key: sc_your_key" \
  -H "Content-Type: application/json" \
  -d '{"type":"send_email","payload":{"to":"user@example.com","subject":"Hi","body":"Hello"}}'

On this page