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 :
1- Je prends les mails du dossier les uns après les autres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 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); }
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'utilisepour 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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part list($avant, $apres) = explode("aznet.fr>", $page);
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.
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".
Merci par avance de votre aide.
Antoine
Partager