Prima di modificare SPF, identifica il dominio che il tuo servizio di invio usa per l'indirizzo envelope-from. Quell'indirizzo riceve i bounce e può differire dall'indirizzo From visibile al destinatario.
Quale dominio controlla SPF?
SPF controlla il dominio in SMTP MAIL FROM, l'indirizzo envelope-from, oppure l'identità HELO del server. HELO è l'hostname che il server mittente presenta all'apertura della conversazione SMTP.
Il ricevente conosce già l'IP di connessione quando riceve MAIL FROM, quindi SPF può essere eseguito prima che arrivi il corpo del messaggio. Quando il mittente envelope è vuoto, come nei MAIL FROM:<>, SPF usa l'identità HELO. RFC 7208, lo standard SPF, raccomanda anche di controllare HELO separatamente.
SPF non controlla l'indirizzo From visibile. L'allineamento DMARC collega un dominio autenticato a quell'indirizzo.
Come si presenta un record SPF?
Un record SPF è un record DNS TXT il cui valore inizia con v=spf1, seguito dalle regole di autorizzazione.
example.com TXT "v=spf1 include:mailprovider.example ~all"
Qui include:mailprovider.example autorizza gli IP che superano la policy SPF di quel provider. ~all produce un softfail per gli altri IP. Sostituisci il provider di esempio con la policy pubblicata dal tuo servizio di invio.
Cosa significano i meccanismi e i modificatori?
I meccanismi testano l'IP di connessione rispetto a una condizione. Il modificatore redirect delega la valutazione quando nessun meccanismo corrisponde.
| Termine | Effetto |
|---|---|
ip4, ip6 | Corrisponde a un indirizzo o una rete scritti direttamente nel record. |
a | Corrisponde a un indirizzo restituito per il dominio indicato, usando la famiglia IP della connessione. |
mx | Corrisponde a un indirizzo di un mail exchanger per il dominio indicato. |
include | Corrisponde quando la policy referenziata restituisce pass per questo IP. |
exists | Corrisponde quando il nome DNS specificato ha un record A; le macro possono costruire quel nome dalla connessione. |
redirect= | Valuta la policy di un altro dominio quando nessun meccanismo corrisponde; un meccanismo all lo rende inefficace. |
ptr | Controlla i nomi reverse-DNS validati; non aggiungerlo a nuovi record perché il lookup è lento e inaffidabile. |
all | Corrisponde a ogni IP rimanente; il qualificatore determina il risultato. |
I meccanismi di indirizzo si scrivono ip4 e ip6. Una voce ptr può comparire in una policy più vecchia, ma RFC 7208 ne sconsiglia l'uso pur richiedendo ai validatori di supportarla.
Cosa cambiano i qualificatori di all?
Il qualificatore imposta il risultato SPF per un IP che raggiunge all; il ricevente decide come gestire il messaggio.
| Finale | Risultato |
|---|---|
-all | Fail: il dominio non autorizza l'IP. |
~all | Softfail: il dominio considera l'IP probabilmente non autorizzato. |
?all | Neutral: il dominio non fa alcuna asserzione. |
+all | Pass per ogni IP, rimuovendo la restrizione che SPF altrimenti fornirebbe. |
Come vengono valutati i record di esempio?
Ogni esempio qui sotto illustra una policy separata. Gli IP e i domini sono esempi di documentazione, non valori da pubblicare per il tuo mittente.
| Record | Cosa autorizza |
|---|---|
v=spf1 mx ip4:192.0.2.10 ip4:198.51.100.0/24 ~all | I mail exchanger del dominio, un IP e la rete indicata; gli altri IP vanno in softfail. |
v=spf1 a ip4:192.0.2.0/25 ip4:198.51.100.0/26 -all | I record di indirizzo del dominio e due reti; gli altri IP vanno in fail. |
v=spf1 -all | Nessun IP; ogni tentativo di uso di questo dominio risulta in fail SPF. |
v=spf1 +all | Ogni IP, quindi non fornisce alcuna restrizione di invio. |
v=spf1 redirect=_spf.example.com | Qualunque cosa la policy su _spf.example.com autorizzi. |
v=spf1 exists:%{i}._spf.example.com ~all | Gli IP il cui nome di lookup espanso restituisce un record A; gli altri IP vanno in softfail. |
Per l'esempio exists, una connessione da 192.0.2.10 produce il nome di lookup 192.0.2.10._spf.example.com. Devi gestire i record DNS che rendono funzionante una policy di questo tipo; il pattern da solo non autorizza un provider.
Quanti lookup DNS può usare SPF?
SPF consente dieci termini con query DNS valutati nell'intera policy e nelle valutazioni annidate. Un undicesimo produce permerror, quindi aggiungere un altro provider può interrompere la valutazione anziché autorizzarlo.
I termini conteggiati sono include, a, mx, ptr, exists e redirect. I termini letterali ip4, ip6 e all non consumano quel budget. Si contano i termini, non semplicemente ogni pacchetto DNS. Il CNAME del return-path fornisce l'autorizzazione SPF di Bird senza aggiungere un include all'apex.
Perché l'inoltro può far fallire SPF?
Un forwarder o una mailing list può reinviare posta legittima da un IP che il dominio envelope-from originale non autorizza. Per esempio, una casella alumni che inoltra a una casella personale cambia il server di connessione visto dal ricevente finale.
Se l'indirizzo envelope-from resta invariato, SPF valuta quel nuovo server rispetto alla policy del dominio originale. Un forwarder può riscrivere l'indirizzo envelope-from usando il Sender Rewriting Scheme (SRS) per autenticare il proprio dominio. Questo da solo non allinea SPF con l'indirizzo From visibile originale.
Una firma DKIM intatta e allineata può comunque fornire un pass DMARC. L'autenticazione non stabilisce che un messaggio sia desiderato né garantisce il posizionamento in inbox.
Cosa devi pubblicare per Bird?
Pubblica il CNAME del return-path fornito per il tuo dominio di invio. Punta all'infrastruttura di bounce di Bird, che fornisce già l'autorizzazione SPF. Non hai bisogno di un include SPF aggiuntivo nel dominio apex per inviare tramite Bird.
Mantieni invariato un eventuale record SPF esistente all'apex per gli altri mittenti. Copia il dns_records del dominio. Verifica capabilities.return_path.status; controlla capabilities.sending.status per la conformità a tutti i requisiti di invio. Entrambi i campi di stato usano questi valori:
| Stato | Significato e azione |
|---|---|
pending | La verifica non è stata eseguita o è in corso; attendi il risultato. |
verified | I record DNS della funzionalità corrispondono ai valori attesi. |
warning | I record verificati in precedenza non corrispondono più; correggili prima della scadenza del periodo di grazia. L'invio non è ancora compromesso. |
failed | Un valore DNS è errato; correggilo. |
temporary_failure | Un lookup DNS è fallito temporaneamente; la verifica riprova automaticamente. |
not_configured | La funzionalità non è configurata per questo dominio. |
Verifica DKIM, return-path e DMARC prima di inviare. Puoi cambiare l'hostname del return-path. Se un valore DNS TXT richiede più stringhe tra virgolette, il DNS record splitter formatta quelle stringhe senza modificare il budget di lookup di SPF.