Récuperer en ligne les donnés d'un compte mail...PLEASE HELP !

Récuperer en ligne les donnés d'un compte mail...PLEASE HELP ! - PHP - Programmation

Marsh Posté le 27-09-2002 à 16:17:03    

j'ai fait 36recherches et je trouve pas de réponses...
 
Comment faire pour récuperer en ligne le contenu de sa boite mail(expediteur,contenu du message...) sous forme de variables pour pouvoir les exploiter ensuite...
 
Est-ce faisable en PHP ?
 
Merci pour vos réponses :jap:


Message édité par vitom le 27-09-2002 à 22:03:04
Reply

Marsh Posté le 27-09-2002 à 16:17:03   

Reply

Marsh Posté le 27-09-2002 à 16:27:21    

Regarde du côté de la librairie IMAP dans la documentation. Ca sert exactement ce que tu veux et même des opérations de suppression, etc.
Le support IMAP est préinstallé avec EasyPHP 1.5 (sé pas pour 1.6).

Reply

Marsh Posté le 27-09-2002 à 16:27:32    

Regarde du coté de pop ou d'imap, selon ton serveur (probablement pop d'ailleurs). Sinon tu as plein (mais alors plein) de webmails en php...

Reply

Marsh Posté le 27-09-2002 à 17:12:00    

dost67,lorill, merci pour vos réponses. je vais aller chercher du coté des documentations.
 
 
auriez vous des exemples concrets, par exemple aussi sur le fonctionnement des webmails en php.
 
pour info je voudrais tenter l'opération dans un premier temps sur un compte free.
 
Merci pour toutes autre réponses :jap:
 
 
 

Reply

Marsh Posté le 27-09-2002 à 17:17:41    

http://www.phpbuilder.com/columns/musone19990207.php3
 
Sinon vla un script que j'ai fait pour envoyer tous les messages venant d'un compte mail vers les newsgroups d'un groupe de dev Delphi  ;)  
 
 

Code :
  1. <?php
  2.                                          
  3. //POP Options
  4. $cfgPopServer = "pop.serveur.com"; //Modifié :D
  5. $cfgPopPort   = 110;
  6. $cfgUser      = "tonuser"; //Modifié :D
  7. $cfgTimeOut   = 10;
  8. $cfgPass      = "tonpass"; //Modifié :D
  9. $cfgIgnore    = "polom@polom.com"; //Modifié :D
  10. //NNTP options
  11. $cfgGroup     = "jedi.vcl"; 
  12. $cfgServer    = "forums.unserveur.com"; //Modifié :D
  13. $cfgPort      = 119;
  14. function ConnectToServer()
  15. {
  16.   global $cfgServer, $cfgPort, $cfgTimeOut, $handle;
  17.   $handle = fsockopen($cfgServer, $cfgPort, $errno, $errstr, $cfgTimeOut);
  18.   return $handle!=0;
  19. }
  20. function PostArticle($from, $subject, $reference, $body, $oldsubject)
  21. {
  22.   global $handle, $cfgGroup;
  23.   if (strpos(StrToLower($oldsubject),"jedi-vcl" )!=false)
  24.     $group = "jedi.vcl";
  25.   else if (strpos(StrToLower($oldsubject),"developers" )!=false)
  26.     $group = "jedi.vcl";
  27.   else if (strpos(StrToLower($oldsubject),"math" )!=false)
  28.     $group = "jedi.math";
  29.   else
  30.     return;
  31.   fputs($handle,"POST\r\n" );
  32.   $tmp = fgets($handle, 1024);
  33.   $body = "From: $from\r\n".
  34.           "Newsgroups: $group\r\n".
  35.           "References: $reference\r\n".
  36.           "Subject: $subject\r\n\n".
  37.           $body."\r\n.\r\n"; //."\r\n.\r\n"; //Do not print . as we do not remove it from the pop message
  38.   fputs($handle,$body);
  39. }
  40. //Connect to server
  41. $phandle = fsockopen($cfgPopServer, $cfgPopPort, $errno, $errstr, $cfgTimeOut);
  42. $tmp = fgets($phandle, 4096);
  43. fputs($phandle,"USER $cfgUser\r\n" );
  44. $tmp = fgets($phandle, 4096);
  45. fputs($phandle,"PASS $cfgPass\r\n" );
  46. $tmp = fgets($phandle, 4096);
  47. fputs($phandle,"STAT\r\n" );
  48. $tmp = fgets($phandle, 4096);
  49. $stat = Explode(" ",$tmp);
  50. //Get messages
  51. if (ConnectToServer())
  52.   for ($i=1;$i<=$stat[1];$i++)
  53.   {
  54.     $header = true;
  55.     $footer = false;
  56.     $from = "";
  57.     $subject = "";
  58.     $article = "";
  59.     $reference = "<none>";
  60.     //Fetch message
  61.     fputs($phandle,"RETR $i\r\n" );
  62.     do
  63.     {
  64.       $tmp = fgets($phandle, 4096);                         
  65.       if (trim($tmp)=="" )
  66.         $header = false;
  67.       else if (StrPos($tmp,"Yahoo! Groups Sponsor" )!=false)
  68.       {
  69.         $footer = true;
  70.         $article = $article."----Message transited via JEDI Script Gateway----\n";
  71.       }
  72.       if ((!$footer) || (trim($tmp=="." )))
  73.         if (!$header)
  74.         {
  75.           if (strpos($tmp,"---Reference:" )!=false)
  76.           {
  77.             $tmp = substr($tmp,strpos($tmp,":" )+2,4096);
  78.             $tmp = Trim($tmp);
  79.             if (strpos($tmp,"-" )!=false)
  80.               $tmp = substr($tmp,0,strpos($tmp,"-" ));
  81.             $reference = Trim($tmp);
  82.           }
  83.           else if (strpos($tmp,"---" )==false)
  84.             $article = $article.$tmp;
  85.         }
  86.         else
  87.         {
  88.           if (substr($tmp,0,4) == "From" )
  89.           {
  90.             $tmp = substr($tmp,6,4096);
  91.             $from = Trim($tmp);
  92.           }
  93.           else if (substr($tmp,0,7) == "Subject" )
  94.           {
  95.             $tmp = substr($tmp,8,4096);
  96.             $subject = $tmp;
  97.           }
  98.         }
  99.     }while (trim($tmp)!="." );
  100.     //Post article
  101.     $oldsubject = $subject;
  102.     $k = StrPos($subject,"]" );
  103.     if ($k!=false//Avoid spams (if no ] in the subject, it's not surely not a msg from the mailing list)
  104.     {
  105.       $subject = Trim(SubStr($subject,$k+1));
  106.       if ((StrPos($from,$cfgIgnore)==false) && (StrPos(StrToLower($subject),"unsubscribe" )==false))
  107.       {
  108.         $oldfrom = $from;
  109.         $k = StrPos($from,"<" );
  110.         if ($k==false)
  111.           $k = StrPos($from,"@" );
  112.         if ($k!=false)
  113.           $from = Trim(SubStr($from,0,$k));
  114.         $from = $from." <".$cfgIgnore.">";
  115.         PostArticle($from,$subject,$reference,$article,$oldsubject);
  116.       }
  117.     }
  118.     /*echo "FROM: $from\n";
  119.     echo "SUBJECT: $subject\n";
  120.     echo "Ref: $reference\n";
  121.     echo "$article\n";*/
  122.     fputs($phandle,"DELE $i\r\n" );
  123.     $tmp = fgets($phandle, 4096);
  124.   }
  125. fputs($phandle,"QUIT\n" );
  126. $tmp = fgets($phandle, 4096);
  127. fclose($phandle);
  128. fclose($handle);
  129. ?>

 
 
c'est ni sécure, ni portable et encore moins propre, mais j'en avais besoin vite, et c'est assez perso... enfin soit, tu peux toujours t'amuser avec ca  ;)


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 27-09-2002 à 20:46:44    

zion -> merci pour ta réponse, j'ai un peu de mal à réutiliser ton code,  
le site que tu m'as donné donne un exemple pour lire les mails à travers un serveur Imap mais j'ai des petits soucis pour le mettre en application...
 
d'abord, qu'est ce qu'ils entendent par compiler du PHP avec Imap ? :
Once you have a running IMAP server and PHP compiled with IMAP support (make sure you read the PHP docs on how to compile PHP with imap), the rest is easy! :
 
de là on créer 1 petit fichier :
 
messages.php3 :
 

Code :
  1. <?php
  2. $MAILSERVER="{localhost/imap}"; -> est-ce que je doit remplacer par un truc style IMP.FREE.FR, de tout façon ça marche pas non plus avec... :(
  3. $link=imap_open($MAILSERVER,login,mdp);
  4. $headers=imap_headers($link);
  5. for($x=1; $x < count($headers); $x++) {
  6.     $idx=($x-1);
  7.     echo "<a href=\"view.php3?num=$x\">$headers[$idx]</a><br>";
  8. }
  9. ?>


 
 
voilà ce que j'ai comme message :
 
Warning: Couldn't open stream {localhost/imap} in c:\sqlserver\www\messages.php3 on line 4
 
Warning: imap_headers(): supplied argument is not a valid imap resource in c:\sqlserver\www\messages.php3 on line 5
 
J'ai du mal à mettre au clair le cheminement nécessaire pour accéder aux mails. QQun pourrait-il expliquer le procéder, j'ai du mal à saisir le concept du PHP compiled with IMAP...  :??:  
 
Merci beaucoup pour vos réponses :jap:
 
[edit : qq petites fautes de phransai...]


Message édité par vitom le 27-09-2002 à 20:47:51
Reply

Marsh Posté le 27-09-2002 à 21:06:25    

ViToM a écrit a écrit :

j'ai du mal à saisir le concept du PHP compiled with IMAP...




 
Simple. PHP est un langage interprété. Pour avoir l'interpréteur php, il faut le compiler. Par défaut, il inclue le support d emysql & cie. En utilisant d'autres options a la compilation de l'interpreteur, tu peux rajouter differents modules, comme d'autres bases, snmp, imap... En gros pour free t'as rien a faire, mais si ils ne l'ont pas compilé avec, tu es bloqué.

Reply

Marsh Posté le 27-09-2002 à 21:18:02    

lorill -> ah ok merci, effectivement c'était pas très compliqué  :sweat:  
 
ce qui signifie que je dois executer mon code sur leur server (en l'occurence Free), voilà ce que j'obtiens :
 
Fatal error: Call to unsupported or undefined function imap_open() in your script on line 4
 
-> donc j'en déduis quoi ? :
1. ils ont désactivés l'IMAP avec PHP
2. Ils empechent les requetes IMAP
3. "mon" code c'est du n'importe quoi...  :pt1cable:  
 
Merci pour d'autres réponses :jap:

Reply

Marsh Posté le 27-09-2002 à 21:19:46    

tu peux aussi dissequer un webmail en php pour voir leurs astuces ...
 
par exemple imp : http://horde.org
 
site de demo : http://webmail.demo.hub.org/
 
tomic : http://forum.hardware.fr/forum2.ph [...] h=&subcat=


Message édité par izz le 27-09-2002 à 21:21:27
Reply

Marsh Posté le 27-09-2002 à 21:20:40    

ViToM a écrit a écrit :

-> donc j'en déduis quoi ? :
1. ils ont désactivés l'IMAP avec PHP
2. Ils empechent les requetes IMAP




 
recherche IMAP sur leur phpinfo  :)  :??:

Reply

Marsh Posté le 27-09-2002 à 21:20:40   

Reply

Marsh Posté le 27-09-2002 à 21:34:45    

izz a écrit a écrit :

 
 
recherche IMAP sur leur phpinfo  :)  :??:  




 
merci pour tes réponses mais :
 
phpinfo() not allowed sur Free  :o  
 
Alors, Imap possible chez free ou po ?
 

Reply

Marsh Posté le 27-09-2002 à 21:38:58    

si la fonction existe ( http://dev.nexen.net/ ) mais qu'elle est refusée sur Free, il n'y a pas 36 explications possibles, ils l'ont désastivée...


Message édité par HORNY-Grandcornu le 27-09-2002 à 21:39:27
Reply

Marsh Posté le 27-09-2002 à 22:02:07    

HORNY-GRANDCORNU : merci pour ta réponse, la fonction existe c'est certain, je pense pas qu'elle soit utilisé de manière incorrecte :
 
j'ai essayé sur levillage.org la meme fonction :
 

Code :
  1. <?php 
  2. $MAILSERVER="{localhost/imap}";
  3. $link=imap_open($MAILSERVER,login,mdp); 
  4. $headers=imap_headers($link); 
  5. for($x=1; $x < count($headers); $x++) { 
  6.    $idx=($x-1); 
  7.    echo "<a href=\"view.php3?num=$x\">$headers[$idx]</a><br>"; 
  8. ?>

 
 
voilà ce que ça répond :
 
Vous avez une erreur qq part dans votre code ou vous utilisez une fonction non valide sur notre serveur
Warning: Couldn't open stream {localhost/imap} in ...
Vous avez une erreur qq part dans votre code ou vous utilisez une fonction non valide sur notre serveur
Warning: imap_headers(): supplied argument is not a valid imap resource in ...

 
est-ce que vous trouvez que le code à l'air mauvais ?
connaissez vous un hébergeur qui accepte de manière certaine les requetes IMAP ?
 
Merci pour d'autres réponses :jap:

Reply

Sujets relatifs:

Leave a Replay

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