Vai al contenuto principale

Checklist per la corretta verifica dell'invio e della consegna delle e-mail

Per ulteriori verifiche sarà richiesto il seguente software:

  • L'utilità host

    • Debian/Ubuntu: apt-get install bind9-host
    • CentOS: yum install bind9-host
  • Utilità telnet

    • Debian/Ubuntu: apt-get install telnet
    • CentOS: yum install telnet

Record MX

Il record MX è un tipo di record DNS progettato per registrare i server di posta che utilizzano il protocollo SMTP. Questo record è responsabile di determinare il server a cui un'e-mail deve essere consegnata dall'agente di posta del mittente. Su un dominio possono esserci diversi tipi di record con priorità differenti.

Puoi verificare se la posta funziona localmente o utilizza un server di posta di terze parti usando il comando host:

host -t MX example.com

Quando si utilizza il server di posta locale, verrà mostrato un output come il seguente:

la posta di example.com è gestita da 10 mail.example.com.

Vale la pena ricordare che la voce mail.example.com può anche puntare a un altro server. Inoltre è necessario notare che mail.example.com deve essere un record A esistente che punta al server dal quale stai inviando le e-mail.

Puoi anche eseguire questi comandi per effettuare il controllo:

host example.com
host mail.example.com

E confrontare gli indirizzi IP a cui puntano il dominio principale, in questo caso example.com, e mail.example.com.

importante

È necessario impostare un record MX affinché i server di posta possano ricevere le tue e-mail.

Esempio di record MX:

Nome: example.com.
Tipo: MX
Valore: mail.example.com.
Priorità: 10

Firma DKIM

Con l'aiuto di FASTPANEL® la firma DKIM può essere ottenuta nel menu di gestione → sezione "Mail" facendo clic su "DKIM" davanti al dominio di posta richiesto

Abilita DKIM in FASTPANEL

Dal lato DNS il record deve essere aggiunto come segue:

Nome: dkim._domainkey
Tipo: TXT
Valore: v=DKIM1; k=rsa; p=public_key

Ecco un esempio del record DKIM corretto

dkim._domainkey TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpbBQ0T2xO3/SwziunIC/IFbsxBRub6WXiu8Kc2w7uB4GVw+SAB5wSEslDJbFXQRbdV9i/Duu8EQ9xik8dbqdLVyP4iAtw34g4j6QWKcfocgK4hEkwlPFff1dzUlNQONh2riNE5KVJXuWcizm8hub7nPnl36e7OnxiL0qIU7tT1QIDAQAB

Maggiori informazioni su DKIM sono disponibili all'indirizzo https://wikipedia.org/wiki/DomainKeys_Identified_Mail

Record SPF

La presenza di un record SPF può essere verificata eseguendo il comando host. In questo caso, il comando sarà simile a questo:

host -t TXT example.com

Con un output simile a:

example.com testo descrittivo "v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all"

Nota che ipv6 potrebbe non essere presente in questa voce. In questo caso la firma SPF apparirà così:

example.com testo descrittivo "v=spf1 ip4:ipv4_of_your_server a mx ~all"

nota

È necessario sottolineare che deve esserci un solo record SFP

Dal lato DNS il record deve essere aggiunto come segue:

Nome: example.com.
Tipo: TXT
Valore:
v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all
o (se ipv6 non viene utilizzato)
v=spf1 ip4:ipv4_of_your_server a mx ~all

Per esempio:

example.com TXT v=spf1 ip4:1.2.3.4 a mx ~all

Maggiori informazioni su SPF sono disponibili all'indirizzo https://wikipedia.org/wiki/Sender_Policy_Framework

Record DMARC

Nella maggior parte dei casi il valore del record DMARC sarà lo stesso.

Dal lato DNS il record deve essere aggiunto come segue:

Nome: _dmarc
Tipo: TXT
Valore: v=DMARC1; p=none

Per esempio:

_dmarc.example.com. TXT v=DMARC1; p=none

Maggiori informazioni su DMARC sono disponibili all'indirizzo https://wikipedia.org/wiki/DMARC

Record PTR e hostname del server

Il record PTR è un record DNS inverso che converte un indirizzo IP in un nome. Lo scopo principale di questo record per il server di posta è eliminare la maggior parte dello spam. Questo record consente di determinare il nome dell'host da cui proviene un'e-mail. Più comunemente, un record PTR contiene un nome di dominio utilizzato sul server.

Il record PTR associa un indirizzo IP a un nome host. Se il record PTR non è specificato correttamente, le tue e-mail verranno rifiutate e non raggiungeranno il destinatario.

L'hostname deve essere specificato come il nome del dominio effettivo che punta al server, e il PTR deve puntare al dominio, che a sua volta punta al server.

Per esempio, hai un dominio example.com sul tuo server.

Eseguendo il comando:

host example.com

puoi ottenere l'output:

example.com ha indirizzo 1.2.3.4
la posta di example.com è gestita da 10 mail.example.com.

Per evitare possibili problemi, si consiglia di impostare l'hostname e il record PTR come un sottodominio esistente di secondo livello, ad esempio mail.example.com

Disponibilità delle porte SMTP

Alcuni provider di hosting bloccano la possibilità di utilizzare le porte usate per inviare o ricevere posta. Le porte per i servizi di posta possono essere 25, 587, 465, 143 e 993.

Uno dei modi più semplici per verificare la disponibilità di queste porte è utilizzare il comando telnet.

Per verificare la connessione in ingresso da un server di terze parti

Esegui il comando:

telnet ip_adress port

Per esempio, se provi a fare telnet sulla porta 25 all'indirizzo 1.2.3.4, il comando da eseguire è:

telnet 1.2.3.4 25

Se la connessione ha esito positivo vedrai un output simile a:

Tentativo di connessione a 1.2.3.4...
Connesso a 1.2.3.4.
Il carattere di escape è '^]'.

Se la connessione fallisce, l'output sarà simile a questo:

Connessione a 1.2.3.4 in corso...
Impossibile aprire la connessione all'host sulla porta some_port: connessione non riuscita

Oppure:

telnet: impossibile connettersi all'host remoto: connessione scaduta

Per una connessione in uscita

Dal tuo server, esegui il comando:

telnet smtp.gmail.com 25

Se la connessione ha esito positivo vedrai un output simile a:

Tentativo di connessione a 2a00:1450:4010:c0b::6c...
Connesso a smtp.gmail.com.
Il carattere di escape è '^]'.
220 smtp.gmail.com ESMTP j6-20020ac25506000000b004b53eb60e3csm1066162lfk.256 - gsmtp

Tieni presente che se utilizzi il cloud hosting e usi la porta 25 per il tuo server SMTP, è probabile che il tuo provider di hosting blocchi per impostazione predefinita le connessioni in uscita sulla porta 25. Di seguito puoi vedere i link con le istruzioni su come risolvere questo problema:

Oltre al blocco delle porte da parte del tuo provider di hosting, devi verificare se le porte sul tuo server sono chiuse oppure no. Prendiamo ad esempio iptables, che agisce come firewall, utilizzando il pannello di controllo FASTPANEL. Il comando per verificare se esiste una regola per una porta specifica, in questo caso la 25, è:

iptables-save | grep 25

Se non disponi di una regola per la porta che vuoi controllare, non verrà fornita alcuna informazione. Se vedi che c'è una regola che blocca la porta del servizio di posta, devi rimuovere questa regola con il comando:

iptables -D rule chain

Per esempio, hai eseguito un comando e hai trovato quanto segue:

iptables-save | grep 25

-A INPUT -p tcp -m tcp --dport 25 -j DROP

Questa regola non consente alcun accesso al tuo server tramite la porta 25, il che impedirà l'invio della posta

Per rimuovere la regola usa il comando:

iptables -D INPUT -p tcp -m tcp --dport 25 -j DROP

Questo esempio di comando ti consente di controllare ogni porta utilizzata per la posta

Influenza di IPv6 sulla posta

Se devi utilizzare ipv6 per i tuoi servizi di posta, la prima cosa da fare è verificare se esiste un record PTR per ipv6 e se i servizi di posta sono in ascolto su ipv6 su determinate porte.

Puoi eseguire il controllo usando il comando:

netstat -nltpp | grep tcp6

Il risultato dell'output di questo comando sarà un elenco di tutti i servizi che utilizzano ipv6, tra i quali puoi già verificare se il tuo servizio di posta usa questo indirizzo. Sfortunatamente, al giorno d'oggi l'uso di ipv6 potrebbe non funzionare correttamente anche se hai eseguito tutte le impostazioni correttamente.

Se hai scoperto controllando i log del servizio di posta che l'errore è correlato a ipv6 e l'intera configurazione è corretta, puoi disabilitare l'uso di ipv6 per il servizio di posta.

Nell'esempio di exim4 la disabilitazione di ipv6 appare così:

  1. Verifica se l'indirizzo ipv6 è utilizzato dal servizio con il comando

    netstat -nltp | grep exim

    Controlla se l'indirizzo ipv6 è utilizzato da exim

  2. Nel file di configurazione /etc/exim4/exim4.conf.template è necessario aggiungere la seguente riga all'inizio del file:

    disable_ipv6=true

  3. Salva le modifiche nel file e quindi riavvia il servizio con un comando come:

    systemctl restart exim4
  4. Esegui il comando:

    netstat -nltp | grep exim

    per verificare che il servizio non sia più nell'elenco

    Controlla se ipv6 è disabilitato per exim

Verifica l'invio delle e-mail usando servizi di terze parti

Dopo aver verificato tutti gli elementi sopra indicati, puoi controllare l'invio delle e-mail dal tuo server utilizzando risorse di terze parti.

Uno dei servizi più comodi e informativi è https://www.mail-tester.com

Usandolo puoi controllare la valutazione attuale della tua posta, ottenere informazioni sul fatto che i dati impostati sopra siano corretti o meno, nonché ricevere una raccomandazione per migliorare la valutazione.

Per farlo, basta inviare un'e-mail all'indirizzo indicato sul sito e poi fare clic su "Then check your score".

Testa la tua posta con mail-tester