Bonjour à tous,
Je reçois AUTOMATIQUEMENT par les services d'Hotmail, dans un dossier, des mails de plainte que je dois traiter pour supprimer les utilisateurs de ma base de données.
Ces e-mails arrivent sous la forme d'une en-tête + un fichier joint (qui inclut le mail que MOI j'ai envoyé à l'origine, et donc l'e-mail du destinataire). Pour compliquer la tâche, ce fichier joint semble codé.
Ce que je souhaite faire est de récupérer, dans le fichier joint, l'adresse e-mail concernée pour la supprimer de ma base de données.
Je procède donc comme suit :
Code :
- if ($handle = opendir('/home/vpopmail/domains/domain.com/postmaster/Maildir/cur/'))
- {
- while (false !== ($file = readdir($handle)))
- {
- $page = file_get_contents("/home/vpopmail/domains/domain.com/postmaster/Maildir/cur/$file" );
- if ( preg_match("#complaint about#i", $page) == true){
- echo "ok";
- list($avant, $apres) = explode("aznet.fr>", $page);
- $page = base64_decode($apres);
- echo $page;
- $titre = preg_match("/X-HmXmrOriginalRecipient: (.+)/", $page, $regs);
- echo "".$regs[1]."<br>";
- if ($titre>0){ $r1=mysql_query("UPDATE base SET ok=0 WHERE mail='".$regs[1]."'" );
- unlink("/home/vpopmail/domains/domain.com/postmaster/Maildir/cur/$file" ); }else{ echo "Mail non reconnu<br>"; }
- }}
- closedir($handle);
- }
|
1- Je prends les mails du dossier les uns après les autres.
2- Je ne sélectionne QUE les mails qui m'intéressent (ceux qui contiennent "complaint" ) => Ca ça marche, aucun souci.
3- J'ouvre les mails concernés les uns après les autres.
4- J'utilise
Code :
- list($avant, $apres) = explode("aznet.fr>", $page);
|
pour séparer mon mail en deux (aznet.fr> étant la FIN de l'en-tête, et donc le début de la pièce jointe. Je récupère donc la pièce jointe seule dans $apres.
5- Je décode la pièce jointe ($apres).
6- Je récupère l'e-mail, situé juste après X-HmXmrOriginalRecipient: et puis je le traite.
[B]Je BLOQUE à l'étape 4 je pense... Car j'ai bien les ECHO "ok" mais les ECHO "$page" ne donnent RIEN. Et j'obtiens "mail non reconnu".[/B]
Merci par avance de votre aide.
Antoine