Séparer une chaîne avec fichier joint ET base64

Séparer une chaîne avec fichier joint ET base64 - PHP - Programmation

Marsh Posté le 17-05-2011 à 15:28:14    

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 :
  1. if ($handle = opendir('/home/vpopmail/domains/domain.com/postmaster/Maildir/cur/'))
  2. {
  3.   while (false !== ($file = readdir($handle)))
  4.   {
  5.     $page = file_get_contents("/home/vpopmail/domains/domain.com/postmaster/Maildir/cur/$file" );
  6. if ( preg_match("#complaint about#i", $page) == true){
  7.  echo "ok";
  8.  list($avant, $apres) = explode("aznet.fr>", $page);
  9.  $page = base64_decode($apres);
  10. echo $page;
  11.     $titre = preg_match("/X-HmXmrOriginalRecipient: (.+)/", $page, $regs);
  12.     echo "".$regs[1]."<br>";
  13. if ($titre>0){ $r1=mysql_query("UPDATE base SET ok=0 WHERE mail='".$regs[1]."'" );
  14. unlink("/home/vpopmail/domains/domain.com/postmaster/Maildir/cur/$file" );  }else{ echo "Mail non reconnu<br>"; }
  15.   }}
  16.   closedir($handle);
  17. }


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

Reply

Marsh Posté le 17-05-2011 à 15:28:14   

Reply

Marsh Posté le 17-05-2011 à 20:44:03    

Résolu !! L'explode n'était pas situé au bon endroit. Merci bc.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed