Indice

🟦Pronta 🟨Bozza 🟥Da scrivere

Spedire mail dalla app

Perché spedire mail dalla app. Indirizzo email della app. Configurazione della spedizione. Evitare che le mail finiscano nello spam.
Aggiornata il:
Stato: 🟦Pronta

Perché la app deve spedire mail?

Ci sono diversi motivi per cui la tua app potrebbe avere la necessità di spedire email. Ecco i più comuni:

  • consentire agli utenti di impostarsi una nuova password se l'hanno dimenticata. Come vedremo, se un Utente della tua app dimentica la password di accesso, può richiedere di ricevere una mail, che contiene un link che gli consente di reimpostarla.
  • consentire agli utenti di contattarti senza conoscere la tua mail. Usando il modulo Contatti, un Utente può scriverti un messaggio compilando una pagina della app e Drupal provvede a inviarti una mail col messaggio dell'Utente
  • consentire agli Utenti di iscriversi da sé alla tua app. L'autoiscrizione di un Utente alla app richiede che Drupal spedisca una mail per verificare l'indirizzo mail dell'Utente.
  • avvisare l'Amministratore di fatti che accadono nella app. Vedremo come costruire procedure che automaticamente avvisano per email l'Amministratore quando occorrono fatti di particolare interesse.
  • ricevere avvisi sugli aggiornamenti dei moduli. Se abiliti la tua app a spedire mail, come Amministratore puoi ricevere mail che ti avvisano quando sono disponibili aggiornamenti dei moduli installati nella tua app.

Se la tua app non è particolarmente critica, non ha altri Utenti oltre a te oppure ha pochi Utenti che puoi contattare esternamente alla app, la spedizione di mail da parte della app potrebbe non interessarti. In tutti gli altri casi, vediamo come attivarla. 

L'indirizzo mail della app

Durante l'installazione di Drupal hai definito un indirizzo mail della app, che puoi rivedere e modificare in Configurazione - Impostazioni di base - Indirizzo e-mail. Questo indirizzo è utilizzato da Drupal come mittente da cui spedire i messaggi. 

La maggior parte dei sistemi di posta elettronica considerano sospetti i messaggi che hanno un mittente appartenente ad un dominio (es. "rossi@gmail.com" appartenente al dominio "gmail.com") diverso da quello della app che spedisce il messaggio (es. "vicinato.bottasini.eu" appartenente al dominio "bottasini.eu"). I messaggi sospetti vengono automaticamente spostati nella casella di posta indesiderata (spam) e quindi non vengono visti dal destinatario. Per evitare questo problema, l'indirizzo mail usato dalla app per spedire messaggi deve appartenere allo stesso dominio della app. 

Se la tua app è installata in cloud, normalmente il provider ti fornisce anche almeno un indirizzo mail nello stesso dominio in cui è installata la app (es. "app@bottasini.eu" per il dominio "bottasini.eu"): ti basta scrivere quell'indirizzo mail in Configurazione - Impostazioni di base - Indirizzo e-mail. Idem, se la tua app è installata su un server locale che fa parte di un dominio accessibile da internet ed il gestore della tua rete locale ti mette a disposizione un indirizzo mail nello stesso dominio.

Se la tua app è installata su un tuo computer che non è accessibile da internet, devi attivare un servizio di spedizione mail attraverso cui far transitare i messaggi: in questo modo i destinatari vedranno arrivare i messaggi della tua app come se fossero stati generati dal servizio esterno, che rende coerenti il dominio della app da cui arrivano ed il dominio dell'indirizzo mail del mittente. Quando avrò tempo sperimenterò uno di questi servizi. Se hai un account Gmail, puoi provare questa strada seguendo queste istruzioni. 

Configurare la app per la spedizione di mail

Il modo più semplice per inviare mail da Drupal è usare il protocollo SMTP perché tutti i server di spedizione mail lo accettano e forniscono i parametri necessari al suo utilizzo. Ci sono diversi moduli aggiuntivi che consentono di utilizzare SMTP in Drupal. Tra questi, suggerisco il modulo "Drupal Symfony Mailer Lite" (DSML), perché supporta SMTP ed è particolarmente semplice da configurare. 

Con DSML viene automaticamente installato anche il modulo "Mail System", che intercetta le richieste di spedizione mail da parte delle diverse funzioni di Drupal e le passa a DSML.

Installati ed attivati i moduli DSML e Mail System, ecco come attivare la spedizione mail dalla tua app: