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:
| 1 | Attiva su SMTP server un indirizzo mail e leggi i parametri richiesti dal server SMTP | Come fare dipende dal particolare servizio di spedizione mail. Scegli una username ed una password per il tuo indirizzo mail. Scriviti i parametri che ti vengono forniti dal servizio: nome del server SMTP (es. "mail.infomaniak.com"), porta (es. 587) e TLS si/no. |
| 2 | Imposta come indirizzo mail della app l'indirizzo mail che hai attivato sul server SMTP | In Configurazione - Impostazioni di base - Indirizzo e-mail scrivi l'indirizzo (es. "app@bottasini.eu") |
| 3 | Configura Mail System perché utilizzi DSML | In Configurazione - Mail System - Default Mail System seleziona Drupal Symfony Mailer Lite sia come Formattatore sia come Mittente |
| 4 | Configura DSML per la comunicazione col server SMTP | In Configurazione - Drupal Symfony Mailer Lite - Transport type seleziona SMTP. Configura il Trasporto SMTP così creato con i parametri della tua mail su server SMTP e definiti al passo 1. |
| 5 | Seleziona come predefinita la configurazione SMTP | In Configurazione - Drupal Symfony Mailer Lite clicca sulla freccina a fianco di SMTP e seleziona Imposta come predefinito |
| 6 | Prova la configurazione | In Configurazione - Drupal Symfony Mailer Lite - Test digita un indirizzo email valido cui hai accesso (es. il tuo personale) e verifica che ti arrivi un messaggio di prova dalla app. In caso di errori, verifica in Resoconti - Messaggi di log recenti se ci sono messaggi di errore ed analizzali per comprendere il problema. |
| AVVERTENZA: Se ti dovesse capitare di cambiare la password dell'indirizzo mail con cui ti connetti al server SMTP, al passo 4 attiva Change password, altrimenti la nuova password potrebbe non essere memorizzata. |