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
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.