evre
EN

Inbound email

evre can receive mail on a verified domain, store the parsed message, and deliver a signed email.received webhook.

Enable

  1. Create an inbound route (or let enable create one):
curl -X POST https://api.evre.email/routes \
  -H "Authorization: Bearer $EVRE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Inbound","kind":"inbound","isDefault":true}'
  1. Verify the sending domain, then enable inbound:
curl -X POST https://api.evre.email/domains/{id}/inbound \
  -H "Authorization: Bearer $EVRE_API_TOKEN"
  1. Publish the returned MX record (distinct from bounce.* MAIL FROM MX) so mail reaches SES inbound.

Webhooks

Subscribe to email.received. The delivery payload is small; fetch the full body via the API:

{
  "type": "email.received",
  "createdAt": "…",
  "data": {
    "email_id": "re_…",
    "routeId": "route_…",
    "from": "a@ex.com",
    "to": ["inbox@customer.com"],
    "subject": "…",
    "created_at": "…"
  }
}

Retrieve

  • GET /emails/received
  • GET /emails/received/{id}

SDK: client.emails.receiving.list() / .get(id)
CLI: evre emails received list|get

Local / mock ingest

curl -X POST https://api.evre.email/internal/inbound-emails \
  -H "Authorization: Bearer $EVRE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"from":"a@ex.com","to":"inbox@customer.com","subject":"Hi","text":"hello"}'

Production SES

Set on the API service:

EnvPurpose
EVRE_INBOUND_BUCKETS3 bucket for raw MIME
EVRE_INBOUND_RECEIPT_RULE_SETShared SES receipt rule set (default evre-inbound)
EVRE_INBOUND_SNS_TOPIC_ARNSNS topic → POST /internal/ses-inbound
EVRE_INBOUND_SUBDOMAINOptional receive host label (empty = apex)
EVRE_INBOUND_OBJECT_PREFIXS3 key prefix (default inbound)

Subscribe the SNS topic to https://api.evre.email/internal/ses-inbound (HTTPS confirmation is handled automatically).