PHP: loggare gli invii di messaggi effettuati con la funzione mail()

A partire dalla versione 5.3.0 di PHP è possibilie abilitare il monitoraggio delle attività di invio dei messaggi da parte della funzione mail(). Si tratta di una precauzione fondamentale per chi offre un servizio di hosting a qualsiasi livello in quanto permette di individuare tempestivamente e con la massima precisione quale script di quale utente sta inviando messaggi attraverso il server. La funzione mail() infatti non viene tracciata dai normali log dell’MTA che sta girando sul server – ad es.: Postfix.

Abilitare questa feature fondamentale è semplice, basta editare il file php.ini richiamato da Apache e indicare esattamente dove vogliamo loggare i comportamenti di mail():

mail.log = /var/log/phpmail.log

Una volta impostato questo valore è sufficiente riavviare apache:

/etc/init.d/apache2 restart

Due sole note importanti:

  1. individuate quale file php.ini stanno chiamando in causa i VirtualHost di Apache, se ad esempio stiamo offrendo il servizio in modalità fast-cgi il file corretto è /etc/php5/cgi/php.ini
  2. abilitate la scrittura del file di log con privilegi sufficienti per tutti gli utenti, nella maggior parte dei casi per garantire la scrittura dovrete impostare il file a 660 o 666

Questo è quanto.

 

Condivido

Leave a comment