Manipulations des mails pour affichage (fonctions imap)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Manipulations des mails pour affichage (fonctions imap)

Manipulations des mails pour affichage (fonctions imap)

par Boro64 » 05 sept. 2014, 10:55

Bonjour,

Mon but : Récupérer les messages et leurs réponses éventuelles de manière distincte.
Ce que j'obtiens : Tous les messages MAIS (et il me semble que c'est normal :mrgreen: ), les réponses sont constituées de tous les messages liés au sujet (l'historique de l'échange).
Mon code :
 $mbox = imap_open("{pop3.xxxxxx.com:110/pop3}INBOX","[email protected]","ABCDE123456");
  $mails = FALSE;
  if (FALSE === $mbox) {
      $err = 'La connexion a échoué. Vérifiez vos paramètres!';
  } else {
      $info = imap_check($mbox);
      if (FALSE !== $info) {
          $nbMessages = $info->Nmsgs;
          $mails = imap_fetch_overview($mbox, '1:'.$nbMessages, 0);
      } else {
          $err = 'Impossible de lire le contenu de la boite mail';
      }
      
  }

  if (FALSE === $mails) {
      echo $err;
  } else {
      echo 'La boite aux lettres contient '.$info->Nmsgs.' message(s) dont '.
                                            $info->Recent.' recent(s)'.
           "<br />\n".
           "<br />\n";
      foreach ($mails as $mail) {
	 
		$from = $mail->from;
		$in_reply = $mail->in_reply_to;// la réponse à cet identifiant de message 
		$sujet = $mail->subject;//sujet du message
		$references = $mail->references; // la référence sur l'id de ce message 
		$date_mail_en = $mail->date;//date d'expédition
		$date_fr = preg_split("/[\s,]+/", $date_mail_en);
		$date_mail_fr = $date_fr[1].'-'.$date_fr[2].'-'.$date_fr[3].'-'.$date_fr[4];
		$id_message = $mail->message_id;// l'identification du message
		$uid = $mail->uid;// UID du message dans la boîte aux lettres, soit l'ordre d'arrivée dans la boite
		$numero = $mail->msgno;//le numéro de séquence du message dans la boîte

		//on récupère le body du message 
		$body = imap_fetchbody($mbox,$uid, "2.1", FT_UID | FT_PEEK); 
			
				echo 'Sujet :'.$sujet."<br />\n";
				echo 'Date :'.$date_mail_fr."<br />\n";
				echo 'Id :'.$id_message."<br />\n";
				echo 'En réponse à :'.$in_reply."<br />\n";
				echo 'UID :'.$uid."<br />\n";
				echo 'Ref :'.$references."<br />\n";
				$reference_message_id = explode(" ", $references);
			   echo 'la référence nettoyée: '.$reference_message_id[0]."<br />\n";			
			echo 'Texte :'.imap_qprint($body)."<br />\n<br />\n";	// imap_qrint évite les '=', '=20' etc.

		 	   
      }//fin du foreach 
	imap_close($mbox);  
	  imap_errors();
imap_alerts();
  }
Mes questions :
1 ) comment faire pour supprimer l'historique des échanges, et /ou lire/afficher séparément les dits échanges?
2) comment faire pour n'avoir que les textes et supprimer les PJ, images insérées, signatures etc. ?

D'avance merci pour vos idées, pistes, suggestions, etc.

Cordialement