Skip to content

Email deliverability

PackEdge sends transactional email through Amazon SES. When AWS reports that a message bounced or was marked as spam, the recipient's profile is flagged and future sends to that address are silently blocked. This keeps a single bad address from torching the sending domain's reputation for everyone else.

States

profiles.email_status carries one of three values:

ValueMeaning
okDefault. Sends proceed normally.
bouncedA permanent bounce was reported (mailbox doesn't exist, domain refuses, address blocklisted). Hard-blocked.
complainedThe recipient hit "report spam" in their mail client. Hard-blocked.

Soft bounces (mailbox full, greylisting, transient DNS) are logged but do not flip the flag — that would punish the recipient for their provider's transient state.

What you see in the console

The system admin user list shows a small badge next to any non-ok address. Your own profile shows a banner with the diagnostic AWS provided, so you can update + reverify your email before the next license alert or receipt is silently dropped.

How it works

  1. Each SendEmail call captures the SES MessageId and stashes a messageId → recipient mapping in Redis with a 30-day TTL.
  2. SES delivers bounce + complaint notifications to an SNS topic which posts to POST /webhooks/ses.
  3. The handler verifies the SNS signature against the AWS-published certificate (RSA-SHA1 against *.amazonaws.com cert hosts), then parses the embedded SES envelope.
  4. The original recipient is looked up via the Redis map; the profiles.email_status row is updated.
  5. The next email.Client.Send call to that address pre-checks the status and returns early without invoking SES.

Operator setup

The AWS side of the wiring is out of band:

  • Create an SNS topic, configure SES to publish bounce + complaint notifications to it.
  • Add an HTTPS subscriber for https://api.packedge.dev/webhooks/ses. PackEdge handles the SubscriptionConfirmation automatically — no manual confirm step needed.
  • Keep the cert URL set to the SNS default (a *.amazonaws.com host). PackEdge rejects any cert URL outside that hostname suffix.

Recovering a blocked address

The block is per-address, not per-account. To restore delivery, change the profile's email to a working address through Settings → Profile. The new address starts in ok state and receives mail immediately. There's no need to delete + recreate the account.