# Come inviare notifiche email istantanee che non finiscano nello SPAM

_Pubblicato il 14/02/2021, aggiornato il 07/04/2021_

![Come inviare notifiche email istantanee che non finiscano nello SPAM](https://www.gardainformatica.it/blog/sviluppo-software/come-inviare-notifiche-email-istantanee-non-spam.png "Come inviare notifiche email istantanee che non finiscano nello SPAM")

Una delle funzionalità che quasi sempre è presente nei software su misura che realizziamo è l'invio di notifiche e-mail (es. e-mail con codice per confermare la registrazione, e-mail per confermare la spedizione della merce, e-mail per avvisare il venditore che l'acquirente ha comprato la merce, ecc.).

**Requisito** comune di queste e-mail di notifica è la necessità che vengano **recapitate in modo istantaneo e non finiscano nello SPAM**.

Quanto è spiacevole quando ti registri a un servizio web e non ricevi l'e-mail di conferma subito, o magari finisce nello SPAM. Il più delle volte desisti e ti dimentichi del sito a cui ti volevi registrare.

Nel tempo abbiamo provato varie alternative per l'invio delle e-mail di notifica, fino a raggiungere l'ottimo.

Vediamo in sequenza i vari metodi e quali problemi comportano.

[Come inviare notifiche email istantanee che non finiscano nello SPAM](https://youtu.be/YOMTcjkYsNM)

Questo articolo fa parte di una serie che illustra i vari servizi che si possono integrare in una piattaforma software realizzata su misura (es. App, e-commerce, marketplace, gestionale verticale, ecc.). Di seguito il link agli altri articoli della stessa serie.

 + [accettare pagamenti online con carta di credito](https://www.gardainformatica.it/blog/sviluppo-software/accettare-pagamenti-online-carta-credito-paypal-nexi-xpay-confronto.md)
 + [quale corriere espresso integrare](https://www.gardainformatica.it/blog/sviluppo-software/quale-corriere-espresso-integrare-brt-ups-tnt-fedex-confronto.md)
 + [quale servizio/software di fatturazione elettronica integrare](https://www.gardainformatica.it/blog/sviluppo-software/danea-easyfatt-fatture-cloud-fatturazione-aruba-quale-integrare.md)
 + [come inviare notifiche email istantanee che non finiscano nello spam](https://www.gardainformatica.it/blog/sviluppo-software/come-inviare-notifiche-email-istantanee-non-spam.md)

## Approccio ingenuo

L'approccio ingenuo consiste nel mandare le email senza operare alcuna configurazione particolare e quindi ignorando tutti i metodi moderni di autenticazione, firma e cifratura delle email.

Con questo approccio la probabilità che l'e-mail inviate finiscano nello SPAM è altissimo.

In Gmail è possibile vedere, in modo semplice, varie informazioni su un'email ricevuta. Alcune subito visibili vicino al menù a scomparsa del mittente, altre visibili se si sceglie l'opzione "Mostra originale".

Ad esempio nell'immagine seguente un'email ricevuta che è finita nello SPAM. Come si vede non c'è firma, non c'è crittografia, l'[SPF](https://it.wikipedia.org/wiki/Sender_Policy_Framework) non è stato configurato e non c'è autenticazione [DKIM](https://it.wikipedia.org/wiki/DomainKeys_Identified_Mail).

![Approccio invio e-mail ingenuo](https://www.gardainformatica.it/blog/sviluppo-software/come-inviare-notifiche-email-istantanee-non-spam-esempio-ingenuo.png "Approccio invio e-mail ingenuo")

## Usare il server di invio SMTP fornito insieme al dominio

![Usare il server di invio SMTP fornito da Aruba.it](https://www.gardainformatica.it/blog/sviluppo-software/inviare-email-aruba.png "Usare il server di invio SMTP fornito da Aruba.it")
![Usare il server di invio SMTP fornito da Register.it](https://www.gardainformatica.it/blog/sviluppo-software/inviare-email-register.png "Usare il server di invio SMTP fornito da Register.it")

Quando si acquista un dominio (es. www.gardainformatica.it) è possibile acquistare oltre al dominio anche il servizio posta. Nel servizio di posta è inclusa la possibilità di mandare e-mail tramite il server SMTP del fornitore. Quindi ad esempio, se si acquista il dominio su Aruba, sarà possibile mandare le email attraverso i server SMTP di Aruba.

Le e-mail vengono correttamente recapitate, ma come il flusso di e-mail aumenta, l'invio si blocca e inizia a venir rifiutato l'invio di nuove e-mail.

Il motivo è che i gestori della posta (es. Aruba.it, Register.it, Google Apps, ecc.) non vogliono che i loro servizi vengano utilizzati da spammer o per l'invio massivo (come nel caso delle newsletter), ma solo come caselle di posta personali e di conseguenza limitano il numero di email che si possono inviare nel tempo.

In base ai nostri test si riescono ad inviare circa 60 email/ora per Aruba.it, 40 email/ora per Register.it (con account pro), e circa 80 email/ora per Google.

Naturalmente però, se sviluppiamo un software su misura che deve mandare le e-mail al verificarsi di eventi, può capitare che vengano superati i limiti previsti dal fornitore del servizio SMTP.

Inoltre per le e-mail mandate in questo modo c'è **discrepanza tra il dominio di firma e il dominio del mittente**. I **tempi di consegna sono poi abbastanza alti**. Di seguito lo screenshot di un'email ricevuta.

![Approccio invio e-mail SMTP dominio](https://www.gardainformatica.it/blog/sviluppo-software/come-inviare-notifiche-email-istantanee-non-spam-esempio-aruba.png "Approccio invio e-mail SMTP dominio")

## Usare servizi SMTP come turboSMTP, SendGrid e similari

![Usare servizi SMTP come turboSMTP, SendGrid e similari](https://www.gardainformatica.it/blog/sviluppo-software/inviare-email-turbosmtp.png "Usare servizi SMTP come turboSMTP, SendGrid e similari")

Tali servizi nascono per consentire l'invio di grosse quantità di e-mail e funzionano abbastanza bene, ma sono pensati più per l'invio di Newsletter che di e-mail di notifica.

**La differenza è nei tempi**.

Se devo inviare una newsletter a 10.000 iscritti e nel giro di due ore sono state inviate tutte le e-mail, posso ritenermi soddisfatto.

Se invece devo mandare un'email di notifica (es. notifica di avvenuta registrazione ad un servizio con il link da seguire per attivare il servizio), **ho bisogno che la singola e-mail arrivi entro pochi secondi**.

Il problema è che i servizi di invio massivo mettono le e-mail da inviare in code di invio, dove sono presenti sia le email delle newsletter, ma anche le e-mail delle notifiche. Essendo tutte nello stesso calderone, le e-mail delle notifiche vengono penalizzate e capita che in momenti di picco arrivino anche con 15 minuti di ritardo. Inaccettabile.

Poi c'è il discorso **filtri anti-SPAM**. Quand'anche non fossero un problema i tempi di consegna della posta, bisogna operare a vari livelli per evitare che i messaggi finiscano nello SPAM. Nello specifico bisogna configurare correttamente:

 1. i parametri SPF e DKIM del server SMTP
 2. la reputazione degli IP di invio
 3. i record DNS del dominio riportando i dati SPF e DKIM
 4. il contenuto (envelop, header, body html) dei messaggi di posta inviati

I servizi come turboSMTP si occupano del punto 1, e nella versione professional (a partire da 80 €/mese) anche del punto 2.

Il punto 3, fondamentale, è però a carico dell'utente che non sempre è in grado di configurarlo correttamente.

Il punto 4, infine, richiede competenze da programmatore.

Di seguito l'immagine di un'email ricevuta con evidenziato il problema principale: il tempo di consegna.

![Approccio invio e-mail turboSMTP](https://www.gardainformatica.it/blog/sviluppo-software/come-inviare-notifiche-email-istantanee-non-spam-esempio-turbosmtp.png "Approccio invio e-mail turboSMTP")

## Configurare la propria infrastruttura SMTP di invio

In **Garda Informatica**, non avendo trovato un servizio conforme alle nostre esigenze, abbiamo configurato i **nostri server di invio SMTP** con l'obiettivo di porre rimedio alle problematiche sopra esposte.

Di conseguenze, quando l'applicativo sviluppato è ospitato sui nostri server, possiamo inviare e-mail di notifica in modo istantaneo adottando tutti gli accorgimenti necessari affinché le email non finiscano nello SPAM, quali:

 + invio dedicato con IP pulito
 + utilizzo e configurazione dei metodi di autenticazione delle email SPF, DKIM e in casi particolari DMARC.
 + chiave DKIM per **singolo dominio** (le nostre email vengono firmate in base al dominio di appartenente, mentre, per esempio, le email di Aruba vengono firmate da aruba.it indipendentemente dal dominio di invio).
 + cifratura delle connessioni SMTP con protocollo TLS.
 + configurazione dei parametri DNS e configurazione del reverse DNS.
 + identificazione e filtro dei [domini temporanei](https://it.wikipedia.org/wiki/Indirizzo_email_temporaneo)
 + generazione del contenuto delle e-mail (in doppia versione HTML e ALT BODY) con appositi header scelti a seconda del tipo di e-mail da inviare (es. [List-Unsubscribe header](https://tools.ietf.org/html/rfc2369) per newsletter e servizi che prevedono la possibilità di disiscriversi).

Di seguito l'immagine di un'email inviata da un dominio configurato con la nostra infrastruttura. Come si vede Firma, SPF e DKIM valido, e tempo di consegna istantaneo.

![Approccio invio e-mail Garda Informatica](https://www.gardainformatica.it/blog/sviluppo-software/come-inviare-notifiche-email-istantanee-non-spam-esempio-gardainformatica.png "Approccio invio e-mail Garda Informatica")

**Vuoi realizzare un software su misura che, tra le altre cose, deve inviare anche delle notifiche email?**

[Contattaci](https://www.gardainformatica.it/software-gestionale-su-misura.md#contatti), oppure prova il nostro [calcolatore online](https://www.gardainformatica.it/software-gestionale-su-misura.md#prezzi) per farti una rapida idea di tempi e costi.

**Autore:** [Giovanni Chiodi](https://www.gardainformatica.it/blog/giovanni-chiodi.md) - Senior software developer con più di 16 anni di esperienza nello sviluppo di soluzioni web based, enterprise, su misura. Dal 2011 socio fondatore di Garda Informatica Snc condivide questa avventura col fratello Lorenzo.
