Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1051 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2076632
ingeniomat​ique
Posté le 17-05-2011 à 15:28:14  profilanswer
 

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

mood
Publicité
Posté le 17-05-2011 à 15:28:14  profilanswer
 

n°2076685
ingeniomat​ique
Posté le 17-05-2011 à 20:44:03  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
Sauvegarde fichier mon code n'est pas parfaitModifier un fichier TXT avec VBA
[PHP]Protéger l'accès à un fichier php contenant des mots de passeforcer telechargement fichier jpg
[AIDE] XSD, XSL, fichier config...Aide ! Récupérer le langage binaire d'un fichier.
envoi de gros fichier par socketValidation formulaire d'upload de fichier sans changer de page
Supression d'un saut de ligne dans une chaîne de caractères[Shell] lecture fichier configuration
Plus de sujets relatifs à : Séparer une chaîne avec fichier joint ET base64


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR