Système anti spam utilisation de blacklist perso et partagées

Description

Pour une liste de compte e-mail imap, je compare les adresses ou les server d'expéditeurs à des blacklist
si concordance -> supression

pour executer mon code il faut que le serveur autorise la fonction imap_open()

l'intéret de mon système est d'utiliser la même blacklist pour plusieurs comptes

je suis un peu newbie... donc mon code n'est pas forcement super performant ... à bons entendeurs..... j'me vexerais pas

je n'utilise pas de base de données car j'me dit que dans une optique de partage des blackliste en fichier c'est plus simple.... mais c'est au dépend des perfs bien sûr.

Source / Exemple :


---------------------------   index.php    ---------------------------
liste domaines spamer: <br>
http://www.spamanti.net/rogues.txt <br>
http://blogs.labo-dotnet.com/blacklist.txt<br>
<?php

function scanbal()
{
		$folder = "bal";
	$dossier = opendir($folder);
	while ($Fichier = readdir($dossier)) 
	{
  		if ($Fichier != "." && $Fichier != "..") 
  		{
    		$nomFichier = $folder."/".$Fichier;
    		echo "<a href=\"index.php?bal=".$nomFichier."\">".$Fichier."</a><BR>";
  		}
	}
	closedir($dossier);
}

if ($bal=="")
{
	scanbal();
}

else 
{

	scanbal();
	include($bal);

$mbox = imap_open ("{".$server.":".$port."}$Folder", $adresse, $pass);

function scanBlackList($mbox,$str,$msgId,$blfile)
{
  $compteur=0;  
  $fcontents = file( $blfile ); 
  while ( list( $numero_ligne, $ligne ) = each( $fcontents ) ) 
  { 
          if ($numero_ligne!="0" && strtolower(trim($ligne))==strtolower(trim($str)))
                    delMsg($mbox,$msgId,$ligne);
  } 
}

function delMsg($mbox,$msgId,$adMail)
  {	
  echo("<b>mail de ".$adMail." attention !suppression mail numéro : ".$msgId."</b>");
  imap_delete($mbox, $msgId+1);
  }

echo "<h1>analyse de la BAL</h1>\n";
$headers = imap_headers($mbox);
if ($headers == false) {
   echo "Appel échoué<br />\n";
} else {
   while (list ($key,$val) = each ($headers)) {
  			$Hi=imap_headerinfo($mbox,$key+1,80,80);
   			$fromName=$Hi->from[0]->mailbox;
   			$fromServer=$Hi->from[0]->host;
   			$from=$fromName."@".$fromServer; 
     			scanBlackList($mbox,$from,$key,'blacklist.txt');
     			scanBlackList($mbox,$fromServer,$key,'http://www.spamanti.net/rogues.txt');
     			scanBlackList($mbox,$fromServer,$key,'http://blogs.labo-dotnet.com/blacklist.txt');
       echo "<form action=\"adAdMail.php\">".$val."--".$subject."-- <input type=text name=\"adMail\" value=\"".$from."\"><button type=\"submit\" target=\"_blank\">x</button>--<b>".$key."</b></form>\n";
   }
}
imap_expunge ($mbox);
imap_close($mbox);
}
?> 

---------------------------   adAdMail.php    ---------------------------

<?
$fp=fopen("blacklist.txt","r+"); 
$fsz=filesize("blacklist.txt"); 
fseek($fp,$fsz); 
fputs($fp,"$adMail\n"); 
fclose($fp);
?>
<script>
history.go(-1)
</script>

---------------------------   bal/free.php    ---------------------------
// créez autant de fichier décrivant vos comptes dans un sous repertoire "bal/"
<?
$server="imap.free.fr";
$port=143;
$folder="INBOX";
$adresse="compte@free.fr";
$login="compte";
$pass="pass_compte";
?>

Conclusion :


Ben merci à
http://www.spamanti.net/rogues.txt
http://blogs.labo-dotnet.com/blacklist.txt

d'avoir partagé leurs blacklists

j'imagine que y'en a surement plein d'autres ce sont les premières que j'ai trouvé... plus y en a moins c'est rapide

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.