Pubblica DMARC in modalità di monitoraggio
Aggiungi un solo record TXT su _dmarc del dominio del tuo indirizzo From. p=none non cambia la consegna, e rua chiede ai destinatari report aggregati che mostrano quali server inviano posta a nome del tuo dominio e se superano SPF o DKIM con allineamento. Se i report vanno a un altro dominio, quel dominio deve pubblicare un record che li autorizzi.
; DMARC record for example.com, monitoring only
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"
; Only if rua points to another domain, for example rua=mailto:reports@example.net,
; example.net publishes:
example.com._report._dmarc.example.net. TXT "v=DMARC1"
Passa a quarantine, poi a reject
Quando i report mostrano che tutte le fonti legittime passano, passa a p=quarantine, osserva di nuovo i report, poi passa a p=reject. La RFC 7489 offriva pct per applicare la policy a una parte della posta che fallisce. La RFC 9989, che la sostituisce, elimina pct perché i valori parziali venivano applicati in modo disomogeneo, e aggiunge t=y, che chiede ai destinatari di applicare un livello sotto la policy pubblicata. I destinatari che seguono ancora la RFC 7489 ignorano t=y, quindi durante il test aggiungi anche pct=0: chiede loro lo stesso trattamento di un livello inferiore. Rimuovi entrambi i tag per applicare la policy.
; Publish one version at a time, in this order, after p=none
; 1. Quarantine in test mode (t=y, plus pct=0 for RFC 7489 receivers), then in full
_dmarc.example.com. TXT "v=DMARC1; p=quarantine; t=y; pct=0; rua=mailto:dmarc-reports@example.com"
_dmarc.example.com. TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com"
; 2. Reject in test mode, then in full
_dmarc.example.com. TXT "v=DMARC1; p=reject; t=y; pct=0; rua=mailto:dmarc-reports@example.com"
_dmarc.example.com. TXT "v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com"
Un solo record SPF per dominio
Un nome può avere un solo record TXT che inizia con v=spf1; con due, SPF fallisce con un errore permanente. Riunisci tutti i mittenti in un solo record. include: controlla il record di un provider, e redirect= affida l’intera policy a un altro dominio, utile quando più domini condividono una policy. redirect= viene ignorato se il record contiene anche un termine all.
; Before: two SPF records on one name (permerror)
example.com. TXT "v=spf1 include:_spf.mailhost.example ~all"
example.com. TXT "v=spf1 include:spf.newsletter.example ~all"
; After: one record
example.com. TXT "v=spf1 include:_spf.mailhost.example include:spf.newsletter.example ~all"
; Another domain that uses the same policy
example.org. TXT "v=spf1 redirect=example.com"
Al massimo dieci query DNS
SPF ammette al massimo dieci termini che richiedono una query DNS, contando ogni include annidato: include, a, mx, ptr, exists e redirect. Uno in più e SPF fallisce con un errore permanente. Rimuovi gli include dei servizi che non usi più, sostituisci a e mx con intervalli ip4 o ip6 che controlli, elimina ptr e sposta un mittente massivo su un sottodominio con un proprio record SPF. Copiare gli indirizzi di un provider nel tuo record fa risparmiare query, ma la copia diventa obsoleta quando il provider li cambia. Questa verifica conta solo i termini di primo livello.
; One lookup each: include, a, mx, ptr, exists, redirect (plus every lookup inside an include)
; No lookup: ip4, ip6, all
; Before: 4 lookups in the top-level record alone
example.com. TXT "v=spf1 a mx include:_spf.mailhost.example include:spf.oldtool.example ~all"
; After: fixed address, unused service removed, bulk mail on its own subdomain
example.com. TXT "v=spf1 ip4:192.0.2.10 include:_spf.mailhost.example ~all"
news.example.com. TXT "v=spf1 include:spf.newsletter.example ~all"
Scegli ~all o -all con attenzione
Chiudi il record con ~all (softfail) o -all (fail), mai con +all, che fa passare qualsiasi server. -all è il segnale più severo, ma un destinatario che controlla SPF presto può allora rifiutare la posta inoltrata prima che DMARC veda la sua firma DKIM valida. Con una policy DMARC applicata, ~all lascia la decisione a DMARC. Un dominio che non invia posta può pubblicare v=spf1 -all.
; Choose one ending for example.com, not both
example.com. TXT "v=spf1 include:_spf.mailhost.example ~all"
example.com. TXT "v=spf1 include:_spf.mailhost.example -all"
; A domain that sends no mail
example.net. TXT "v=spf1 -all"
Allinea DKIM al tuo dominio From
DMARC passa quando SPF o DKIM passano per un dominio allineato all’indirizzo From. Molti servizi firmano per impostazione predefinita con il proprio dominio: DKIM passa, l’allineamento no. Attiva in ogni servizio la firma con il tuo dominio, così che la firma porti d=example.com, e pubblica la chiave o il CNAME che il servizio ti indica sotto il suo selettore. L’allineamento relaxed, quello predefinito, accetta qualsiasi sottodominio dello stesso dominio organizzativo; adkim=s e aspf=s richiedono una corrispondenza esatta.
; Key for a sending service, selector s1: a CNAME or a TXT record, as the service says
s1._domainkey.example.com. CNAME s1.dkim.mailhost.example.
s1._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOC..."
; Aligned signature in a delivered message: d= matches the From domain
From: news@example.com
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=s1; ...
Una modifica DNS può impiegare quanto il TTL del record precedente per raggiungere ogni resolver. Poi esegui di nuovo la verifica sul dominio del tuo indirizzo From, perché legge esattamente il nome host che inserisci.