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érer les images qui arrivent sur une adresse email [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut Récupérer les images qui arrivent sur une adresse email
    Bonsoir à tous,

    Le week end se termine, je l'ai passé sur mon problème mais je n'avance pas, c'est pour ça que je fais appel à vous.

    Alors je voudrais récupérer les images (pièce_jointes) que contiennent les mails que je reçois dans ma boite de réception pour ensuite les afficher automatiquement sur mon site internet.

    Actuellement je suis à la récupération de l'image mais je bloque.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Cannot use object of type stdClass as array in C:\wamp\www\Iconito-2.1\www\extraction.php on line 42
    Voilà le code de ma page extraction :
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <?php
    $mail = imap_open("{pop.1and1.fr:110/pop3}INBOX","mon_email","mon_motdepasse");
    $nbmess = imap_num_msg($mail);
     
    if ($nbmess == 0)
    {
    echo "
        <div align='center'>
         <b>Aucun message présent sur le serveur</b>
    <br /><br />
        </div>
    ";
    }
    else
    {
    for($j=1;$j<=$nbmess;$j++)
    {
    $header = imap_headerinfo($mail,$j);
    $sujet = $header->subject;
    echo "+ ".$sujet."<br>";  
    $struct = imap_fetchstructure($mail,$j);
     
    if ($struct->type == 1)
    {
    $nbrparts = !$struct->parts ? "1" : count($struct->parts);
    }
     
    $piece = array();
    for($h=1;$h<=$nbrparts;$h++)
    {
    $part = $struct->parts[1] ;
     
    $piece = imap_fetchbody($mail,$j,$h+1);
     
    if ($part->encoding == "3")
    {
    $nbparam = count($part->parameters);
    $i=0;
    while ($i < $nbparam)
    {
    $i++;
    $param = $part->parameters[$i];
    $nom_fichier = $struct->parts[$h]->dparameters[0]->value;
    if($nom_fichier!=null)
    {
    echo '&nbsp;&nbsp;&nbsp;&nbsp;/'.$nom_fichier.'<br>';
    }
    }
    $piece = imap_base64($piece);
    }  
    if($nom_fichier!=null)
    {
    $newfichier = fopen("C:/".$nom_fichier,"w+");
    fwrite($newfichier,$piece);
    fclose($newfichier);
    }
    }
    }
    }
     
    ?>


    Le message d'erreur s'affiche uniquement lorsque j'ai une un message contenant une pièce jointe.
    Si il y a un message qui n'a pas de pièce jointe, cela m'affiche :
    image est le nom de l'objet du message.


    Je vous remercie par avance pour votre aide
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

  2. #2
    Membre actif Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Points : 221
    Points
    221
    Par défaut
    Ici tu fais $part = $struct->parts[1]
    Puis $param = $part->parameters[$i];

    Je ne connais du tout les objet renvoyés par les fonction que tu utilise, simplement j'ai lu la doc et l'attribut parts de ton objet $struct contient un "Tableau d'objets décrivant chaque partie MIME du message"

    Donc pas un tableau de tableau mais un tableau d'objets.
    Maintenant est-tu sur que ces objet on bien un attribut parameters comme tu semble vouloir l'utiliser.

    Je pense qu'un var_dump de $part serait plus que necessaire.

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

Discussions similaires

  1. afficher les images qui sont sur un FTP sécurisé
    Par Cidouge dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 08/10/2014, 17h06
  2. Réponses: 2
    Dernier message: 27/05/2010, 16h26
  3. comment récupérer les données dans contact sur une feuille excel?
    Par Granfred dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/01/2009, 15h02
  4. exporter les donneés qui arrivent sur un port TCP
    Par zaki_1982 dans le forum Développement
    Réponses: 3
    Dernier message: 22/04/2008, 01h07
  5. Comment récupérer les coordonnées d’un clique sur une image ?
    Par da_sys dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2006, 12h34

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