7
2013
Logger les mails envoyés par la fonction mail
Dans cet article nous allons voir comment tracer les mails envoyer par un site web utilisant la fonction mail.
Cette procédure est très utile pour traquer le site qui spam sur un serveur mutualisé.
Procédure :
Créer le fichier /usr/sbin/phpsendmail et y insérer ceci :
[php]#!/usr/bin/php
<?php
$sendmail = ‘/usr/sbin/sendmail’;
$logfile = ‘/var/log/mail_php.log’;
/* Get email content */
$logline = ”;
$mail = ”;
$fp = fopen(‘php://stdin’, ‘r’);
while ($line = fgets($fp))
{
if(preg_match(‘/^to:/i’, $line) || preg_match(‘/^from:/i’, $line))
{
$logline .= trim($line).’ ‘;
}
$mail .= $line;
}
/* Build sendmail command */
$cmd = ‘echo ‘ . escapeshellarg($mail) . ‘ | ‘.$sendmail.’ -t -i’;
for ($i = 1; $i < $_SERVER[‘argc’]; $i++)
{
$cmd .= escapeshellarg($_SERVER[‘argv’][$i]).’ ‘;
}
/* Log line */
$path = isset($_ENV[‘PWD’]) ? $_ENV[‘PWD’] : $_SERVER[‘PWD’];
file_put_contents($logfile, date(‘Y-m-d H:i:s’) . ‘ ‘ . $logline .’ ==> ‘ .$path."\n", FILE_APPEND);
/* Call sendmail */
return shell_exec($command);
?>[/php]
Creer le fichier log et changer les droits des deux fichiers :
[shell]
touch /var/log/mail_php.log
chmod 777 /var/log/mail_php.log
chmod 777 /usr/sbin/phpsendmail
[/shell]
Editez le fichier /etc/php.ini et modifier le chemin de sendmail pour qu’il pointe sur notre script phpsendmail :
[shell]
[mail function]
;SMTP = localhost
;smtp_port = 25
sendmail_path = /usr/sbin/phpsendmail
[/shell]
Redémarrez Apache et visualisez le log /var/log/mail_php.log
Articles similaires
Laissez un commentaire
Publicité :)
Articles récents
- Memento VI – Boostez Votre Productivité avec Vi : Trucs et Astuces à Connaître
- Configuration de Nginx pour Obtenir l’IP Réelle des Visiteurs avec CloudFlare
- Récupérer les informations d’un Ordinateur Terra à partir du numéros de série avec Python
- Grep – Extraire toutes les adresses IP d’un fichier text, Json, etc…
- Failed to Start File System Check – Vcenter 7
Mot-clefs
Commentaires récents
- Grep – Extraire toutes les adresses IP d’un fichier text, Json, etc… dans
- Grep – Extraire toutes les adresses IP d’un fichier text, Json, etc… dans
- Rotation des logs avec logrotate dans
- Hôte déconnecté sur le Vcenter. Impossible de se connecter à l’ESX. dans
- Pourquoi mon interface vlan ne veut pas devenir up ? dans