IMAP en php

Voici un petit script PHP que j’ai fait pour se connecter en IMAP à un serveur de mail et effacer tout ce qui avait plus de 2 semaines (c’est notre boîte recevant les spams).

/*
* Nettoyage de la boite spambin
* Suppression des emails de plus de 2 semaines
* http://offroad.gonzofamily.com
*/

//indiquer le nom du serveur
//en respectant le nom du certificat si c'est en ssl
define("IMAP_SRV","imap.company.com:993",1);
//Login du compte imap
define("IMAP_LOGIN","spambin",1);
//Mot de passe du compte imap
define("IMAP_PWD","aabbccdd",1);
//true : SSL activé, false : SSL désactivé
define("IMAP_SSL",true,1);
//nombre de jours de mails à conserver
define("DAYS_UPTO_DELETE",14,1);

//définition de l'adresse sous la forme
//{localhost:993/imap/ssl}INBOX
$adresse = "{".IMAP_SRV."/imap";

if(IMAP_SSL)
$adresse.= "/ssl";

$adresse.= "}INBOX";

$serveur = "{".IMAP_SRV."}";

$mbox = imap_open ($adresse, IMAP_LOGIN, IMAP_PWD) or die("can't connect: " . imap_last_error() ."\n");;
$num_msg = imap_num_msg($mbox);

//AFFICHAGE
echo "il y avait $num_msg messages dans spambin\n";

//EFFACEMENT DES ANCIENS EMAILS
$date_limit = time() - ( DAYS_UPTO_DELETE * 86400);
$i=1;
$headers = imap_headerinfo($mbox,$i);
while($i < $num_msg && $headers->udate < $date_limit){
imap_delete($mbox,$i++);
$headers = imap_headerinfo($mbox,$i);
}

imap_expunge($mbox);

imap_close($mbox);

$i--;
$num_msg = $num_msg - $i;
echo "$i messages effaces, $num_msg restants\n";

Leave a Reply

Your email address will not be published. Required fields are marked *