Garantire la ricezione delle e-mail

Nel precedente articolo abbiamo visto come creare un server di posta utilizzando lo script di Mail-in-a-Box, che permette la configurazione di un ambiente praticamente chiavi in mano.

Una volta creato un account di posta, come quello di rosa@pyroplastic.stream si possono ricevere messaggi di posta elettronica da tutti i provider: gmail.com, outlook/hotmail, yahoo… Tuttavia, non è detto che i nostri messaggi vengano recapitati con successo, questo perchè il nostro server di posta potrebbe non essere stato configurato secondo le specifiche anti-spam di gmail.com, Outlook/Hotmail, Yahoo.

Come possiamo vedere nello screenshot sotto, il messaggio di posta inviato da Rosa è finito nella cartella dello Spam di Yahoo Mail.

Stessa cosa per una mail inviata ad un account Hotmail.

In questo articolo vedremo con assicurarci che le mail spedite dal nostro server mail vengano effettivamente recapitate nella posta in arrivo.

Verifica blacklist

La prima cosa da verificare in generale è che l’ip del proprio mail server non sia in una blacklist ossia che la reputazione dell’IP o dell’host non sia invalidata da precedenti invii di spam. Questo capita se l’IP è dinamico o se il nostro server mail in passato è stato oggetto di spam. Per controllare se l’IP è stato bandito si può ricorrere a questo tool gratuito: https://mxtoolbox.com/blacklists.aspx

Se è in blacklist, si può richiedere la rimozione ai vari mantenitori delle liste e attendere 12-24 ore affinchè l’esclusione dalle lista sia effettiva per tutti.

Invece. se il nostro IP o host non è in una blacklist ma le mail non vengono recapitate con successo, tipicamente il secondo motivo per cui il messaggio finisce nella cartella SPAM, è la mancanza della configurazione SPF.

Attivazione reverse DNS (o record PTR)

Questa funzione permette di assegnare un nome univoco all’indirizzo IP del vostro mail server. Tuttavia non è strettamente necessario, ma è importante se si inviano mail a piccoli provider (tipo tiscali.it, libero.it,…). Il reverse DNS (chiamato anche record PTR o rDNS) solitamente va impostato da chi vi fornisce il server di posta e il suo indirizzo IP. Come valore va inserito il nome del server mail: nel nostro caso, posta.pyroplastic.stream.

La richiesta di creazione/attivazione del record può essere fatta solitamente tramite il pannello di controllo del provider oppure aprendo un ticket.

Record SPF

SPF, Sender Policy Framework, è un sistema di validazione delle email ideato per individuare tentativi di invio di email con indirizzo mittente contraffatto.

Verificando nelle intestazioni del messaggio, infatti appare spf=softfail

SPF è in pratica una sorta di record DNS di tipo TXT da aggiungere fra i record DNS del dominio di posta. Nel nostro caso aggiungeremo:

pyroplastic.stream.  IN TXT "v=spf1 mx a ip4:176.x.x.99 a:posta.pyroplastic.stream"

Dove 176.x.x.99 è l’indirizzo IP del nostro mail server e posta.pyroplastic.stream è il suo hostname.

Questo tipo di configurazione va bene solo nel caso non vi siano altri mail server autorizzati ad inviare mail per il dominio @pyroplastic.stream. Infatti con questo record SPF, dichiareremo che le uniche mail genuine provengono o da 176.x.x.99 o da posta.pyroplastic.stream.

Potete aiutarvi a generare il vostro record SPF, tramite il tool gratuito online: https://www.spfwizard.net/

Aggiunta dkim

Abbiamo provato a mandare un messaggio dall’account di Rosa verso Hotmail e Yahoo, ma ancora finisce nello spam. Tuttavia a questo punto mezza configurazione è ok in quanto SPF=pass. Rimane da sistemare dkim. DKIM non è obbligatorio, ma aumenta la probabilità di non avere problemi in caso in cui qualcuno inizi a utilizzare senza il nostro consenso i nostri account (Mail spoofing).

Per creare la configurazione dkim, basta andare sul pannello di controllo di Mail-in-a-Box, sezione System, voce Extenal DNS.

Scorrendo verso il fondo della pagina troveremo i nostri valori da inserire nuovamente nel DNS.

Quindi dobbiamo creare un record mail._domainkey di tipo TXT contenente il valore v=DMIK1; h=sha….

Aggiunta record _dmarc

L’altro record che si può inserire è DMARC, che è l’acronimo di Domain-based Message Authentication, Reporting & Conformance.

Per usare questa tecnologia, va creato un record di tipo TXT chiamato _dmarc, il cui valore contiene questi valori:

v=DMARC1; p=none; rua=mailto:dmarcreport@pyroplastic.stream

Dove dmarcreport@pyroplastic.stream è un indirizzo di posta al quale recapitare eventuali report in cui sono elencate le statistiche di chi ha inviato mail con il proprio dominio. E’ un campo necessario quindi, inseriamo un indirizzo mail creato ad-hoc.

Esempio di report/statistiche inviato da gmail.

Invece il valore p=none serve per dire di non fare nulla in caso arrivino messaggi che non corrispondano alle direttive imposte con dkim o spf.

Epilogo

Dopo aver fatto tutte queste modifiche e aspettato circa 24 ore, abbiamo provato nuovamente ad inviare un messaggio di posta. Questa volta l’email è stata recapitata correttamente nell’inbox (posta in arrivo) dell’utente destinatario.

Facciamo un breve riassunto dei controlli da fare quando le mail non vengono recapitate nella casella di posta in arrivo:

  • Verificare la non presenza nelle blacklist dell’IP o host del mail server (estremamente importate)
  • Creare il record SPF (mediamente consigliato)
  • Creare il “record” DKIM (opzionale)
  • Creare il record _dmarc (opzionale)
  • Aggiungere il reverse DNS (altamente consigliato)
  • Attendere 24 ore dopo aver modificato i DNS.