Deliverability

What is DMARC?

DMARC is an email policy and reporting mechanism that checks whether SPF or DKIM authenticates the domain in the visible From address.

A message can pass authentication for one domain while showing another domain to its recipient.

How does DMARC check a message?

The receiving server checks whether a passing SPF or DKIM result aligns with the domain in the visible From address. Either aligned pass is enough for DMARC to pass.

  1. You publish your DMARC policy in DNS.
  2. The receiver looks up the policy and checks SPF, DKIM and domain alignment.
  3. If neither method passes and aligns, the receiver considers your requested failure policy alongside its own filtering rules.
  4. Participating receivers send authentication reports to the addresses you specify.

SPF, DKIM and DMARC do different jobs. SPF checks whether a sending IP is authorized for the envelope-from domain, which receives bounces. DKIM verifies a signature over the signed message content. DMARC connects either result to the domain the recipient sees.

What does domain alignment mean?

Alignment means the authenticated domain matches the visible From domain under your chosen matching rule. For SPF, the authenticated identity is normally the envelope-from domain. For DKIM, it is the signature's d= domain.

Relaxed alignment allows subdomains that share the same organizational domain, the registered domain such as example.com. Strict alignment requires an exact match. For example, send.example.com aligns with example.com under relaxed SPF alignment, but not strict alignment.

The aspf and adkim tags select strict (s) or relaxed (r) alignment for each method. Both default to relaxed. How DMARC works covers the checks in more detail.

What goes in a DMARC record?

A DMARC record is a DNS TXT record at _dmarc beneath your domain. This example requests reports without requesting quarantine or rejection:

_dmarc.example.com. IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-aggregate@example.com; ruf=mailto:dmarc-afrf@example.com; pct=100"
TagMeaning in the example
v=DMARC1Identifies the record as DMARC.
p=noneRequests no DMARC enforcement while you inspect authentication results.
ruaNames the aggregate-report mailbox.
rufNames the failure-report mailbox; receivers may not provide these reports.
pct=100Applies a requested enforcement policy to all failing messages; it does not turn p=none into enforcement.

Replace the example domain and reporting addresses with ones you control. The DMARC record explanation covers additional settings.

What can a DMARC policy enforce?

Your policy requests how receivers handle messages that fail DMARC. The receiver makes the final delivery decision.

PolicyYour request
p=noneApply no DMARC-specific enforcement. Other spam and security checks still apply.
p=quarantineTreat failing messages as suspicious, typically by placing them in spam.
p=rejectReject failing messages.

DMARC addresses unauthorized use of your domain in the From address. It does not stop someone using a different, similar-looking domain or copying your display name. A DMARC pass also does not guarantee inbox placement. RFC 7489, the DMARC specification, leaves message acceptance with the receiver.

How do you start enforcing a policy?

Start with p=none and aggregate reporting, then identify and authenticate each legitimate sending source before tightening the policy. This prevents an enforcing policy from blocking a sender you forgot to configure.

Aggregate reports show the authentication results reported by participating receivers. Failure reports provide message-level details when a receiver supplies them. Missing reports do not establish that no one used your domain.

Move to quarantine or reject after resolving legitimate authentication failures. The DMARC policy explanation and setup steps cover that rollout.

How do you configure DMARC for Bird?

You publish the records returned for your sending domain: DKIM, the return-path CNAME and a valid DMARC policy. A valid policy covering the domain can be inherited from its organizational domain. p=none satisfies Bird's DMARC check.

The domain response reports the policy check in capabilities.dmarc.status. Check capabilities.sending.status for readiness across DKIM, return-path and DMARC. Both fields use these statuses:

StatusMeaning and action
pendingVerification has not run or is running; wait for its result.
verifiedThe capability's DNS records match the expected values.
warningPreviously verified records no longer match; fix them before the grace period ends. Sending is not yet affected.
failedA DNS value is wrong; correct it.
temporary_failureA DNS lookup failed transiently; verification retries automatically.
not_configuredThe capability is not set up for this domain.

The sending-domain guide covers verification, and the authentication guide explains the DNS records.

Mettez-le en pratique.

Poursuivez avec la documentation, les guides et les exemples sur ce sujet. Les ressources sont en anglais.

Obtenir un guide d'implémentation

Développez sur le même réseau.

Une clé API de test est disponible immédiatement. La production est activée dès que vous ajoutez un moyen de paiement et vérifiez un expéditeur.

Commencez avec un seul canal.
Ajoutez les autres quand vous êtes prêt.

Une clé API de test est disponible immédiatement. L'accès production se débloque dès que vous ajoutez un moyen de paiement et vérifiez un expéditeur.

Vous utilisez Claude Code, Cursor ou Codex ? Copiez un prompt de configuration et votre agent installe la CLI Bird et les compétences pour vous. Choisissez le vôtre :

Cursor