Di solito non mi importa troppo la mancanza di un SMTP in locale, ma adesso devo controllare un pò di email prima di mettere in produzione. Dato che sono un Linuxiano, (Ubuntu 9.10 64 bit) pensavo a Postfix, trovando:
https://help.ubuntu.com/community/Postfix
https://help.ubuntu.com/community/PostfixBasicSetupHowto
http://thedrupalblog.com/configure-your-development-server-deliver-all-m...
http://thedrupalblog.com/configure-your-virtual-machine-deliver-email-lo...
http://mavimo.org/linux/postfix_virtual_user (grazie Mavimo)
http://infojunkie.dyndns.org/content/drupal-smtp-settings-using-postfix-...
E per Mac OS-X:
http://www.agileapproach.com/blog-entry/how-enable-local-smtp-postfix-os...
Ma poi, mi sono accorto che non mi serve un SMTP server vero e proprio (con tutto la configurazione necessario, email valido, ecc, ecc, ecc) ma che mi basta uno 'finto', che accetta tutto, e non la manda da nessuna parte (ma che mi la fa vedere le email che ha ricevuto). Quindi ho scovato:
Dumbster http://quintanasoft.com/dumbster/ (Java, quindi va bene per tutti)
Mailster http://tedorg.free.fr/en/projects.php (java)
DevNullSMTP http://www.aboutmyip.com/AboutMyXApp/DevNullSmtp.jsp (Java)
mocksmtpd http://github.com/koseki/mocksmtpd (Ruby)
Papercut http://papercut.codeplex.com/ (Windows only, sigh)
Prima che mi metto a smanettare, qualcuno l'ha già provato uno di questo (o un altro)? Spero non Papercut, perchè non uso più Windows da anni...
John
mmhm anche io sono un Linuxiano, e ho tentato di usare PostFix o SendMail da riga di comando oppure attraverso qualche scripr in Bash, e devo dire che già questi due hanno alcuni problemi derivanti dal fatto che le stringhe che compongono il "comando" devono essere perfettamente composte.... purtroppo con drupal ho no ho mai tentato l'avventura.
Slice2Theme Servizio per la conversione di Design in markup HTML e/o temi.
WeBrain Solution | Pillsofbits Of Bits
Bene, altro mezzo giornata perso nella ricerca...
Almeno posso documentare i (pessimi) risultati. Non sono un uomo felice. Dopo un lungo meandro in internet, ho trovato questo: http://drupal.org/node/201981
Così la soluzione più semplice in assoluto è: Devel. Basta andare in
/admin/settings/devel
e settare 'SMTP library' a 'Log only'. Sto usando questo metodo perchè non aggiunge moduli, non richiede che imparo tanti dettagli di PHP sendmail/postfix, ecc, ecc, ecc.Posso dire che
mocksmtpd
funziona bene, provato con telnet (dal tutorial di Mavimo, ma ho anche trovato un altro http://www.yuki-onna.co.uk/email/smtp.html) ma tutto questo prima di scoprire che PHP mail() non usa il server direttamente (localhost:25, ma usa sendmail (o postfix) tramite il CLI. Perchè non lo so, ma posso dire che rompe in modo assoluto...Forse in secondo posto (ma non ho più la pazienza di testarlo) sarebbe un script da inserire nel variabile sendmail_path di php.ini: http://www.drupal4hu.com/node/55
Altrimenti, bisogna installare un modulo per comunicare direttamente col server smtp (WTF?), tipo SMTP o PHPMailer. Ma non trovo la giustificazione di aggiungere librerie, moduli, ecc., per un semplice test - poi dovrò rimuoverli prima di passare in produzione.
Anche su questo sito c'era qualcosa: http://www.drupalitalia.org/node/8194 BTW, mi sembra che sotto Windows PHP mail() parla direttamente col SMTP server, quindi mocksmtpd (o uno degli altri) sembra non solo fattibile, ma anche semplice. Ma posso sbagliare (sto passando una giornata no).
Altri curiosità: http://groups.drupal.org/drubuntu
Adesso devo ancora fare 'sti test dei email. Sigh.
John
Più imparo, più dubito.
Ciao John,
visto che sei su ubuntu perché non ti configuri exim4?
Lo imposti dicendogli semplicemente di usare l'STMP della tua connessione ADSL (esempio: out.alice.it).
Attraverso la procedura guidata fai tutto con poche pressioni del tasto invio (Winzozz style ma da shell ;-) ):
root@sylpheed:/# dpkg-reconfigure exim4-config
Non devi fare nient'altro e sei già pronto a spedire.
Di solito mi ricompilo qmail, ma per una macchina di testing o di sviluppo non ne vale la pena.
Grazie sylpheed, possiamo aggiungerlo alla lista: sendmail, postfix, exim. Il punto è che in sviluppo non voglio che questi email vanno a destinazione. O meglio che vanno da qualche parte che io posso vederli, ma il ricevente (che potrebbe essere fassullo: [email protected]) non le riceve.
Ho visto, per esempio, che postfix ha un smtp_sink (http://www.postfix.org/smtp-sink.1.html) che salva gli email nel file system. Immagino che exim ha qualcosa di simile. Ho anche visto qualche blog su come usare le procedure guidate, e probabilmente è la strada più corretta. Solo che il mio campo di Murphy è molto potente in questi giorni, e non voglio perdere altre mezze giornate smanettare. Sarà sulla mia lista per l'anno prossimo.
Per il momento credo che la soluzione Devel va bene per piccoli quantità di email (tipo password dimenticato), e lo script che sostituisce il solito
sendmail_path
va bene per grande quantità di email (tipo newsletter). Sono soluzioni che richiedono pocchissimo tempo è che sono alla portate di tutti...Ben venga idea nuova - la barriera per un principiante (con server SMTP) è alto, qualunque cosa che rende più semplice è sempre apprezzzato...
John
Più imparo, più dubito.