Release history
E2a releases
All releases
13 shown
Self‑send screening + domain capabilities
River refactor + ID standardization + template beta
Metadata-only email.received + encrypted DKIM
- Update client SDKs to version 4.0.0 (npm @e2a/[email protected], PyPI e2a 4.0.0).
- Modify domain record handling logic to query the unified `dns_records` array by `purpose` instead of the deprecated separate fields.
- `GET/POST /v1/domains` now returns a single `dns_records` array with `purpose` fields, replacing the old separate MX/TXT/DKIM objects and `sending_dns_records` array; SDKs must be updated to @e2a/[email protected] (npm) or e2a 4.0.0 (PyPI).
- Domain verification now requires an inbound MX record (`inbound_mx.status: "verified"`) instead of TXT ownership only.
- Signed pagination cursors using HMAC for tamper‑evidence.
- Web UI renders email bodies as HTML and adds light/dark/system theme toggle in the sidebar.
Full changelog
Highlights
Breaking — domain DNS records unified (#304)
GET/POST /v1/domains now returns one purpose-tagged dns_records array (each record has type, name, value, priority, purpose, status), replacing the old dns_records.{mx,txt,dkim} object + the separate sending_dns_records array. The MAIL FROM records are returned in the same array at registration when the sending feature is enabled, and every record carries a per-record status. purpose/status are open sets — tolerate unknown values.
- SDKs bumped to 4.0.0 (
@e2a/[email protected]on npm,e2a 4.0.0on PyPI).DomainViewconsumers must address records bypurposeinstead ofdns_records.mx/.txt/.dkim. - Verification now requires the inbound MX (was ownership-TXT only), so
inbound_mx.status: "verified"is honest andverifiedtruly means the domain can receive mail.
Other
- Signed pagination cursors (HMAC) — list cursors are now tamper-evident (#302).
- Web: render inbound + outbound email bodies as HTML (#307); light/dark/system theme toggle in the sidebar (#306).
- Internal: piguard-eval offline evaluation harness (#305).
Full diff: v1.0.4...v1.0.5