Stai facendo delle prove su un sistema Drupal alla ricerca di qualche infido baco, oppure semplicemente per un giro di test funzionali. Ad un certo punto scopri con orrore che il sistema ha mandato un centinaio di email e queste persone ti stanno scrivendo un po’ alterate e stupite “Che sta succedendo?!”. Ti rendi conto dunque di aver bisogno di un sistema che ti permetta di effettuare i test in tutta tranquillità ma senza spedire davvero le email. Sarebbe inoltre molto simpatico che il testo di queste email sia leggibile da qualche parte, in modo da vedere effettivamente cosa sarebbe stato spedito.
Questo problema ha più soluzioni, ecco la mia (che prevede, per semplicità, di avere il sistema di test sulla propria macchina in localhost).
Necessario:
- Un’installazione di Drupal (e fin qui…)
- Modulo Drupal SMTP
- Lo script fakemail (disponibile sia in Perl che in Python)
Fakemail è un programmillo che in pratica simula un server SMTP; rimane in ascolto su una porta scelta a piacere e salva le email che gli vengono spedite come file dentro una directory anch’essa scelta a piacere.
Il modulo SMTP di Drupal, invece, permette di scegliere attraverso quale sistema SMTP Drupal debba spedire le email; si possono scegliere l’hostname del server, la porta ed evntualmente anche l’autenticazione. Queste stesse cose possono essere fatte a “livello di configurazione PHP”, ma in questo modo è ovvio che la configurazione rimane più trasparente.
Seguendo le istruzioni installate ed eseguite lo script fakemail. Fate in modo che questo ascolti su una porta alta, diciamo la 10025. Fate anche in modo che il path nel quale le email vengono salvate sia visibile dall’installazione Drupal (o comunque dal vostro web server). All’interno di questa directory create un .htaccess dove scriverete un’unica riga: options +indexes.
Configurate il modulo SMTP in modo che sia attivo ed utilizzi “localhost” come server e la porta 10025.
A questo punto provate a spedire una email con Drupal (per esempio, potete usare la form di recupero password) e poi puntate il browser alla directory di cui sopra; la vostra email apparirà come fosse un qualsiasi file che potrete aprire per vedere cosa vi sarebbe stato spedito.
Nota bene: questo sistema ovviamente NON funzionerà se il modulo che state provando NON utilizza la “drupal way” per spedire email ed userà invece direttamente la funzione mail() del PHP. Per modificare il comportamento di questa occorrebbe allora agire a livello di configurazione del PHP impostando la variabile di configurazione “sendmail_path”.
2 Responses to “Fakemail e Drupal”
Ciao,
puo’ tornare utile in casi come questo smtp-sink (eseguibile che fa parte di postfix). Nasce con altre finalita’, ma ti permette di avere agevolmente una cosa del genere, ritrovandoti un file per ogni email.
Tanto per fare un esempio:
smtp-sink -4 -d “%Y%m%d%H/%M.” -u utente -R /tmp/cestone -h gmail.com 25 1024
Ciao,
Gelma
Bene a sapersi, Andrea :) Grazie
Additional comments powered by BackType