IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupéré un lien depuis mon email via imap


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    ray man
    Inscrit en
    Juillet 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : ray man

    Informations forums :
    Inscription : Juillet 2009
    Messages : 274
    Points : 130
    Points
    130
    Par défaut Récupéré un lien depuis mon email via imap
    Bonjour

    Je me connecte a mon email (gmail) via ce script
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    $hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
            $username = 'myacount@gmail.com';
            $password = 'password';
     
            /* try to connect */
            $inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
     
            /* grab emails */
            $emails = imap_search($inbox,'all');
     
            /* if emails are returned, cycle through each... */
            if($emails) {
     
              /* begin output var */
              $output = '';
     
              /* put the newest emails on top */
              rsort($emails);
     
              /* for every email... */
              foreach($emails as $email_number) {
     
                /* get information specific to this email */
                $overview = imap_fetch_overview($inbox,$email_number,0);
                $message = imap_fetchbody($inbox,$email_number,2);
                $message=strip_tags($message);
                /* output the email header information */
                $emai=split("<",$overview[0]->from );
                echo 'Lus ou pas : '.($overview[0]->seen ? 'lue' : 'Non Lue').'<br>';
                echo 'subject : '.$overview[0]->subject.'<br> ';
                //echo 'from : '.$overview[0]->from.'<br>';
                echo 'from : '.$emai[0].' + '.$emai[1].'<br>';
                echo 'date :  '.$overview[0]->date.'<br>';
     
                /* output the email body */
                echo 'Message '.rawurlencode(utf8_decode(rawurldecode($message))).'<br>';
                break;
              }
     
              echo "<br><br><br><hr><br><br>";
     
            }
     
            /* close the connection */
            imap_close($inbox);
    Dans mon email j'ai un seul email qui contient sa

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://www.test.com?id=4
    Mais quant j’exécute mon script voila ce que je reçois comme résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Lus ou pas : Non Lue
    subject : test
    from : =?ISO-8859-1?Q?fai=E7al_name?= + myacount@hotmail.com>
    date : Mon, 24 Sep 2012 13:39:11 +0000
    Message %0D%0A%0D%0A%0D%0A%3D0A%3D%0D%0A%3D0A%3D%0D%0A%3D0A%3D%0D%0Ahttp%3A%2F%2Fwww.test.com%3Fid%3D3D4%20%09%09%20%09%20%20%20%09%09%20%20%20%09%09%20%09%20%20%20%3D%0D%0A%09%09%20%20%0D%0A%3D%0D%0A
    Comment je peux avoir juste le lien correctement


    Cordialement

  2. #2
    Membre régulier Avatar de Chris_Dupasquier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2010
    Messages : 67
    Points : 85
    Points
    85
    Par défaut
    Hello,

    Si cela peut t'aider, perso j'utilise une librairie, qui utilise le protocole Imap tout comme toi. Je la trouve très simple et super efficace.

    Voici le lien de téléchargement : Ici

    A+

  3. #3
    Membre habitué
    Homme Profil pro
    ray man
    Inscrit en
    Juillet 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : ray man

    Informations forums :
    Inscription : Juillet 2009
    Messages : 274
    Points : 130
    Points
    130
    Par défaut
    Merci pour ta repense Mais j'ai toujours le problème qui résiste voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function gettemail()
            {
                require '../../GMailReader.php';
                $gmail = new GmailReader();
                $gmail->openMailBox('login@gmail.com', 'password');
                //$results = $gmail->getMessagesSince('Fri, 22 Oct 2010 9:00:00');
                //$nbMails = $gmail->getNumMessages();
                //$mails = $gmail->getMailBoxDirectory();
                $mails=$gmail->getAllMessages();
                $body = $gmail->getBodyMessage($mails[7]->Msgno);
                echo $body;
                exit();
            }
    Voila ce que j'ai dans mon navigateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    --_21bf96d8-610e-4b7d-967c-a631ed14b586_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable =0A= =0A= =0A= http://www.test.com?id=3D4 = --_21bf96d8-610e-4b7d-967c-a631ed14b586_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
     
     
    =0A= =0A= =0A=
    http://www.test.com?id=3D4
    =
    = --_21bf96d8-610e-4b7d-967c-a631ed14b586_--

  4. #4
    Membre régulier Avatar de Chris_Dupasquier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2010
    Messages : 67
    Points : 85
    Points
    85
    Par défaut
    Hello,

    C'est un problème de récupération précise du body du mail.

    Sur le site du manuel de PHP, on trouve une compensation à ce manquement de la classe qu'il faudra intégrer ensuite à cette dernière.

    Voici le code
    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
    <?php
    function ReplaceImap($txt) {
      $carimap = array("=C3=A9", "=C3=A8", "=C3=AA", "=C3=AB", "=C3=A7", "=C3=A0", "=20", "=C3=80", "=C3=89");
      $carhtml = array("é", "è", "ê", "ë", "ç", "à", "&nbsp;", "À", "É");
      $txt = str_replace($carimap, $carhtml, $txt);
     
      return $txt;
    }
     
    $mbox = imap_open("{imap.gmail.com:993/imap/ssl}INBOX", "login", "password");
    $no = 7; // Email a voir, le numéro de l'email
     
    $text = imap_fetchbody($mbox, $no, 1);
    $text = imap_utf8($text);
    $text = ReplaceImap($text);
    $text = nl2br($text);
     
    echo $text;
    ?>
    En faisant cette maniipulation dans mon navigateur j'ai pour ton cas ceci de retourné :
    PS : Pourrais-tu rééditer ton dernier post et supprimer tes identifiants...

  5. #5
    Membre habitué
    Homme Profil pro
    ray man
    Inscrit en
    Juillet 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : ray man

    Informations forums :
    Inscription : Juillet 2009
    Messages : 274
    Points : 130
    Points
    130
    Par défaut
    Oh Merci pour ta repense et pour ta remarque

    Voila la solution de mon probléme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo 'Message : '.quoted_printable_decode($message).'<br/>';

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Windows Phone 8] Envoi d'un mail contenant un lien depuis mon application
    Par jubourbon dans le forum Windows Phone
    Réponses: 5
    Dernier message: 26/09/2013, 15h13
  2. Récupération Email via IMAP javax.mail
    Par Galacta71 dans le forum Android
    Réponses: 0
    Dernier message: 26/01/2013, 19h25
  3. Lien depuis mon serveur.
    Par Cheeper dans le forum Langage
    Réponses: 2
    Dernier message: 15/05/2008, 07h37
  4. je peux pas envoyer des emails via mon application
    Par scofild20 dans le forum Réseau
    Réponses: 7
    Dernier message: 20/10/2007, 22h54
  5. [Mail] lien depuis un email
    Par gforce dans le forum Langage
    Réponses: 4
    Dernier message: 19/11/2006, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo