Indice

🟦Nuova 🟩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. 

Ogni indirizzo mail appartiene ad un dominio, che è la parte a destra della chiocciola (es. l'indirizzo "rossi@gmail.com" appartiene al dominio "gmail.com"). A sua volta, la tua app appartiene al dominio indicato nel suo indirizzo (es. una app con indirizzo https://vicinato.bottasini.eu appartiene al dominio "bottasini.eu"). La maggior parte dei sistemi di posta elettronica considerano sospetti i messaggi che hanno un mittente appartenente ad un dominio (es. "gmail.com") diverso da quello della app che spedisce il messaggio (es. "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, il dominio dell'indirizzo mail della app deve coincidere col dominio della applicazione che invia il messaggio. 

Se la tua app è installata in un servizio cloud di web hosting, fa parte di un dominio pubblico. Se, come quasi sempre accade, il servizio cloud ti mette a disposizione anche almeno un indirizzo mail nel medesimo dominio, sei a posto: 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 di un dominio pubblico ed il gestore della tua rete locale ti mette a disposizione un indirizzo mail nello stesso dominio.

Come 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 (oltre ad altri metodi di trasporto di mail, es. Sendmail) 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.

Questo schema evidenzia come un messaggio generato da una funzione della tua app arrivi nella casella Gmail, Outlook o altro dell'Utente destinatario, passando per Mail System e DSML dentro Drupal e, fuori Drupal, attraverso il server SMTP (in grigio i protocolli con cui il messaggio viaggia in internet):

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