Skip to content

Standards

Every standard, and where Herald uses it

Email works because everyone speaks the same protocols. Herald implements them as they’re written, so your mail is understood, authenticated and trusted wherever it lands.

Sending

StandardWhat it isIn Herald
RFC 5321Simple Mail Transfer ProtocolDelivery, submission and the MX
RFC 5322Internet Message FormatEvery message Herald composes; its header policy
RFC 2045–2049MIMEMultipart messages, attachments and inline images
RFC 6531SMTPUTF8Internationalised addresses
RFC 5890IDNADomains compared as A-labels; mixed-script look-alikes flagged
RFC 6409Message submissionSMTP on 587
RFC 8314Implicit TLS for submissionSMTP on 465
RFC 3207STARTTLSRequired on 587; always tried when delivering
RFC 4954SMTP AUTHYour API key as the password, only after TLS

Authentication

StandardWhat it isIn Herald
RFC 6376DKIMEvery message signed for your domain, and for Herald’s
RFC 8463Ed25519 for DKIMA second, modern signature, if you choose
RFC 7208SPFAligned through the return path; checked on mail Herald receives
RFC 7489DMARCAligned by design; required for Proclamations; checked on inbound
RFC 8617ARCChecked on mail Herald receives
RFC 8601Authentication-ResultsWhat the MX found, recorded with each inbound message

Transport security

StandardWhat it isIn Herald
RFC 8461MTA-STSEnforced when delivering; published for Herald’s MX
RFC 7672DANE for SMTPEnforced when a domain publishes TLSA records
RFC 8460SMTP TLS reportingPublished for Herald’s MX
RFC 8446TLS 1.3Preferred; Herald’s own endpoints accept nothing older than TLS 1.2

Unsubscribes, bounces and complaints

StandardWhat it isIn Herald
RFC 8058One-click unsubscribeOn every Proclamation, recorded before the answer
RFC 2369List-Unsubscribe and friendsOn every Proclamation
RFC 2919List-IdOn every broadcast
RFC 3464Delivery status notificationsLate bounces, matched by Herald’s own token
RFC 3463Enhanced status codesHow a bounce is classed
RFC 5965Abuse reporting formatComplaints from enrolled feedback loops only
RFC 3834Automatic responsesOut-of-office replies are never counted as bounces

The API

StandardWhat it isIn Herald
RFC 9110HTTP semanticsThe REST API
RFC 9457Problem detailsEvery error, with Resend’s names alongside
RFC 6750Bearer tokensAPI keys in the Authorization header
OpenAPI 3.1API descriptionGenerated from the schemas that check each request
Standard WebhooksSigned webhooksEvery webhook signed, with Svix’s header names too
RateLimit fieldsRate limit headers (IETF draft)On every response
RFC 9116security.txtWhere to report a weakness

Cryptography and sign-in

StandardWhat it isIn Herald
WebAuthnPasskeysThe only way into Console and Backoffice
RFC 9180HPKEInbound mail sealed to its project on arrival
NIST SP 800-38DAES-256-GCMEach project’s data, under its own key
RFC 2104HMACTokens, API key hashes and webhook signatures
RFC 9106Argon2idRecovery codes