Passa al contenuto principale

GUIDA DEFINITIVA: Configurazione del server per una consegna email affidabile. PARTE 2: Come impedire che le email in uscita finiscano nello spam

· 8 minuti di lettura
Customer Care Engineer

dns-records-configuration-spf-dkim-dmarc-ptr-mx-prevent-email-spam-guide

informazioni

I record DNS sono un insieme di parametri tecnici di un dominio che determinano dove instradare i diversi tipi di traffico: web, posta, FTP, ecc.

Essi collegano il nome di dominio agli indirizzi IP e ad altri server in modo che i browser e i sistemi di posta sappiano a chi connettersi quando lavorano con il tuo sito web o la tua email.

Nella Parte 1 di questa guida, abbiamo configurato il firewall e aperto le porte necessarie per la consegna della posta. Ora che ci siamo assicurati che i messaggi vengano inviati dal tuo server, dobbiamo verificare che i record DNS siano configurati correttamente. Gmail, Outlook e altri importanti servizi di posta verificano rigorosamente MX, SPF, DKIM, DMARC e PTR prima di consegnare i messaggi nella casella di posta principale. Record corretti aumentano notevolmente la probabilità che i messaggi finiscano nella cartella Posta in arrivo invece che nello Spam (o vengano completamente rifiutati).

Nei passaggi seguenti, descriveremo come controllare i record DNS correnti per ogni tipo e forniremo raccomandazioni su come configurarli correttamente.

warning

In questa parte dell'articolo, per tutti i controlli utilizzeremo come esempi il dominio example.com, l'indirizzo IPv4 1.2.3.4 e l'indirizzo IPv6 2001:db8:1:11::1. Si prega di sostituirli con il nome reale del tuo sito web e i tuoi indirizzi IP effettivi.

Prerequisiti

Passo 1. Controllo del provider DNS

Nel contesto di questo articolo, dovremo modificare i record DNS più volte. Ciò deve essere fatto nel pannello di controllo dell'attuale provider DNS per il tuo dominio. Per farlo correttamente, devi sapere esattamente chi sta fornendo questi servizi in questo momento. Altrimenti, le modifiche apportate non avranno alcun effetto.

Molto spesso il ruolo di provider DNS è svolto da:

  • il tuo provider di hosting,

  • il tuo registrar di dominio, oppure

  • il tuo provider di protezione DDoS.

Ma non è sempre così.

Puoi scoprire esattamente chi è attualmente il provider DNS per il tuo dominio utilizzando il comando whois. Ad esempio, controlliamo il dominio kodu.cloud:

whois kodu.cloud | grep -i "Name Server" | awk '{print $3}'

L'output elencherà i server NS:

art.ns.cloudflare.com
isla.ns.cloudflare.com

Ciò significa che in questo caso i record DNS devono essere modificati nel pannello di controllo di Cloudflare.

In molti casi, puoi dedurre chi sia il provider DNS dal nome del dominio. Tuttavia, non è sempre così. Ad esempio, per il nostro servizio DNS gratuito, disponibile a tutti i nostri clienti, i nomi sono i seguenti:

birman.nameserver.red.
rex.nameserver.red.
korat.nameserver.blue.
toybob.nameserver.blue.

 In questo caso, si prega di contattare il supporto tecnico del tuo provider di hosting per ulteriori chiarimenti.

Una volta identificato definitivamente il tuo provider DNS, accedi al suo pannello di controllo e vai alla sezione per la modifica dei record DNS per il tuo dominio. La maggior parte delle modifiche descritte di seguito verranno apportate lì. Poiché tutte le interfacce differiscono, è impossibile fornire una guida passo-passo universale.

Se incontri difficoltà in questa fase, consulta il supporto tecnico.

warning

Dopo aver modificato i record DNS, la propagazione della cache può richiedere da 20 minuti a 24 ore. Tenendo conto del tempo necessario ai principali servizi di posta per aggiornare la tua reputazione, per una consegna email stabile si consiglia di attendere circa 48 ore, anche se più spesso la situazione si normalizza dopo 2-3 ore.

Passo 2. Controllo dell'IPv6

Per una configurazione corretta, dobbiamo sapere esattamente se il server dispone di un indirizzo IPv6. Per scoprirlo, esegui il comando:

ip a | grep inet6

Se l'output è approssimativamente il seguente:

inet6 ::1/128 scope host noprefixroute
inet6 2001:db8:1:11::1/120 scope global
inet6 fe80::1/64 scope link

allora il tuo server ha un indirizzo IPv6. Verrà mostrato sulla riga che termina con scope global fino al segno /.

Annota l'indirizzo IPv6 del tuo server in modo da poterlo usare in seguito.

Se l'output è vuoto, o contiene solo una singola riga del tipo:

inet6 fe80::1c2:3dff:fe4a:5b6c/64 scope link

allora il tuo server non ha IPv6. In tutti i passaggi successivi, si prega di non utilizzare l'IPv6.

Configurazione record DNS

Passo 3. Controllo del record MX

Il record MX specifica dove devono essere inviate le email in arrivo per il dominio. Puoi controllarlo con il comando:

dig MX example.com +short

Esempio di output corretto:

10 mail.example.com.

Se l'output mostra un valore errato, modifica il record DNS nel pannello di controllo del tuo provider DNS:

  • Tipo: MX
  • Nome: @
  • Indirizzo: mail.example.com
  • Priorità: 10

Se il record è mancante, otterrai un output vuoto:

~ dig MX badexample.com +short
~

In questo caso, crea un record DNS seguendo l'esempio sopra.

Also note that there can be several MX  records. In questo caso, la posta verrà inviata per prima al server con il valore di priorità numerica più basso (ad esempio, 10 ha una priorità maggiore di 20).

Se il server primario non è disponibile, la consegna verrà effettuata al server successivo in ordine di priorità.

Passo 4. Controllo dei record A e AAAA

Successivamente, assicurati che mail.example.com e example.com puntino effettivamente al server da cui vengono inviati i messaggi:

dig A example.com +short
dig A mail.example.com +short
dig AAAA example.com +short
dig AAAA mail.example.com +short

Gli indirizzi IP nell'output di questi comandi devono corrispondere agli indirizzi IPv4 e IPv6 effettivi del tuo server. Se differiscono, o se tali record sono mancanti, modificali o creali nel pannello di controllo del tuo provider DNS:

  1. example.com (A):
  • Tipo: A
  • Nome: @
  • Indirizzo: 1.2.3.4
  1. example.com (AAAA):
  • Tipo: AAAA
  • Nome: @
  • Indirizzo: 2001:db8:1:11::1
  1. mail.example.com (A):
  • Tipo: A
  • Nome: mail
  • Indirizzo: 1.2.3.4
  1. mail.example.com (AAAA):
  • Tipo: AAAA
  • Nome: mail
  • Indirizzo: 2001:db8:1:11::1

Passo 5. Controllo del record SPF

SPF definisce quali server sono autorizzati a inviare posta per conto del dominio.

Controllo del record:

dig TXT example.com +short

Esempio di un record SPF corretto:

example.com. TXT "v=spf1 ip4:1.2.3.4 ip6:2001:db8:1:11::1 a mx ~all"

È estremamente importante che il dominio abbia un solo record SPF. Record multipli possono causare un errore di validazione.

Se l'indirizzo IP è diverso dal tuo indirizzo server attuale, o se tale record manca, modificalo o crealo nel pannello di controllo del tuo provider DNS:

Se è presente IPv6:

  • Tipo: TXT
  • Nome: @
  • Valore: v=spf1 ip4:1.2.3.4 ip6:2001:db8:1:11::1 a mx ~all

Se non c'è IPv6:

  • Tipo: TXT
  • Nome: @
  • Valore: v=spf1 ip4:1.2.3.4 a mx ~all

Il record SPF ha molte opzioni aggiuntive, ma questo set è sufficiente per l'invio corretto dei messaggi.

Passo 6. Controllo del record DKIM

DKIM è una firma digitale di un messaggio che conferma che è stato inviato dal dominio specificato e non è stato manomesso. Per verificare la firma viene utilizzato un record DNS TXT con una chiave pubblica: prima la firma viene creata sul server, e poi la chiave viene pubblicata nel DNS.

Esistono vari modi per ottenere una firma DKIM per il tuo dominio email, ma nell'ambito di questo articolo prenderemo in considerazione l'opzione più semplice: l'utilizzo di FASTPANEL. In FASTPANEL, una firma DKIM viene creata per i domini email per impostazione predefinita.

suggerimento

FASTPANEL è estremamente comodo per lavorare con un server di posta: non è necessario configurare o installare nulla manualmente. Out of the box, ottieni un server di posta configurato per un lavoro a pieno regime con posta in entrata e in uscita, oltre a un comodo client webmail.

Pertanto, tutto ciò che devi fare è copiare il valore della chiave pubblica e aggiungerlo al record DNS corrispondente. Per fare ciò, nel pannello, vai su "Gestione" → "Posta" e fai clic sul pulsante "DKIM" alla fine della riga con il nome del tuo dominio email:

dns-records-configuration-spf-dkim-dmarc-ptr-mx-prevent-email-spam-guide

Quindi copia la chiave pubblica:

dns-records-configuration-spf-dkim-dmarc-ptr-mx-prevent-email-spam-guide

Sul lato del tuo provider DNS, crea il seguente record DNS:

  • Tipo: TXT
  • Nome: dkim._domainkey
  • Valore: la chiave che hai copiato in precedenza

Se un record del genere esiste già, è meglio sostituire comunque il valore della chiave per essere sicuri che sia aggiornato.

Ci possono essere diversi record DKIM, ma in tal caso devono avere nomi diversi. Ad esempio, avere contemporaneamente record con i nomi dkim._domainkey e mail._domainkey non causerà problemi.

Dopo la configurazione e l'aggiornamento della cache DNS, è possibile verificare la presenza del record DKIM utilizzando il comando:

dig TXT dkim._domainkey.example.com +short

Passo 7. Controllo del record DMARC

DMARC imposta le regole per la gestione dei messaggi che non superano SPF o DKIM.

Controllo del record:

dig TXT _dmarc.example.com +short

Esempio di output:

"v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s"

Il record DMARC ha molte opzioni aggiuntive, ma per scenari comuni è sufficiente aggiungere un record del seguente formato:

  • Tipo: TXT
  • Nome: _dmarc
  • Valore: v=DMARC1; p=reject

Passo 8. Controllo della variabile sendmail_path (opzionale)

Questo passaggio sarà molto utile se invii messaggi direttamente dal tuo sito web (ad esempio, tramite moduli di contatto o durante l'effettuazione di ordini). Per assicurarti che tutti i record DNS necessari vengano presi in considerazione per tali messaggi, imposta il seguente valore per la variabile sendmail_path nelle impostazioni PHP del tuo sito:

/usr/sbin/sendmail -t -i -f "[email protected]"

Ad esempio, in FASTPANEL puoi farlo nella scheda del sito nella sezione "Impostazioni PHP".

Configurazione Hostname e PTR

PTR (o rDNS) è un record DNS inverso che collega un indirizzo IP a un nome di dominio.

L'Hostname del server è semplicemente il nome con cui il server può essere identificato sulla rete.

Se il PTR non corrisponde all'hostname del server, i messaggi finiranno quasi certamente nello spam.

La best practice è impostare mail.example.com come entrambi i valori (ricorda che questo valore deve sempre essere sostituito con il nome reale del tuo dominio).

Passo 9. Hostname

Per scoprire l'hostname attuale del tuo server, esegui il comando:

hostname

Per modificarlo, esegui:

sudo hostnamectl set-hostname mail.example.com

Quindi esegui nuovamente il comando hostname per assicurarti che tutto sia corretto.

Passo 10. PTR

La situazione con il record PTR è leggermente diversa: può essere modificato solo dal proprietario dell'indirizzo IP, ovvero dal tuo provider di hosting. Puoi saperne di più sui motivi di ciò in questo articolo.

Alcuni provider di hosting consentono di modificare il record PTR nel tuo account personale. Puoi provare a farlo lì da solo. Se non funziona, contatta il supporto tecnico e chiedi loro di impostare il seguente valore come record PTR:

mail.example.com

Ricorda che questo valore deve sempre essere sostituito con il nome reale del tuo dominio.

Le modifiche vengono solitamente applicate immediatamente; in questo caso non è necessario attendere gli aggiornamenti della cache DNS. Puoi controllare il record PTR corrente utilizzando il comando:

dig -x 1.2.3.4 +short

Controllo finale

Se sei arrivato a questa sezione, congratulazioni: sei in dirittura d'arrivo. Ora non resta che verificare che tutto sia configurato correttamente e che i messaggi dal tuo server finiscano quasi sicuramente nella Posta in arrivo di qualsiasi destinatario. Prima di farlo, assicurati di attendere gli aggiornamenti della cache DNS. È meglio attendere almeno 1-2 ore dopo le ultime modifiche ai record DNS.

Esistono molti servizi di terze parti per tali controlli. Puoi usarne uno qualsiasi. In questo articolo, utilizzeremo il servizio mail-tester.com.

Per eseguire il controllo, visita questo sito web e copia il nome della casella postale di test:

dns-records-configuration-spf-dkim-dmarc-ptr-mx-prevent-email-spam-guide

Invia un messaggio a questo indirizzo da qualsiasi casella postale del tuo dominio e fai clic sul pulsante "Then check your score". Non dimenticare di specificare un oggetto e scrivere qualcosa nel corpo del messaggio.

Dopodiché, il servizio mostrerà i risultati del controllo di DKIM, SPF, DMARC, la presenza di un record PTR e un punteggio generale di "reputazione" per il messaggio, nonché se il tuo server è elencato nelle blacklist di SPAM.

Se hai seguito attentamente e costantemente tutti i passaggi di questo articolo, il risultato sarà 10/10. Se è inferiore, studia le raccomandazioni di mail-tester. Spiegheranno in dettaglio qual è il problema e come risolverlo.

Inoltre, puoi verificare se il tuo server è elencato nelle blacklist di SPAM utilizzando un altro eccellente servizio:

 https://mxtoolbox.com/blacklists.aspx

Se uno qualsiasi dei controlli mostra che l'indirizzo IP del tuo server è finito in uno degli elenchi, contatta il tuo provider di hosting in modo che possano aiutarti a risolvere il problema.

Questo conclude la configurazione. Se non vuoi dedicare tempo alla tua ricerca o hai riscontrato problemi, puoi sempre contattare il supporto tecnico di kodu.cloud. Eseguiremo tutti i passaggi descritti qui il più rapidamente possibile per i nostri clienti in qualsiasi momento, gratuitamente.