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

Web & réseau Delphi Discussion :

[Indy] Comment récupérer les pièces jointes d'un mail ?


Sujet :

Web & réseau Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Points : 38
    Points
    38
    Par défaut [Indy] Comment récupérer les pièces jointes d'un mail ?
    bonjour,

    je n'arrive pas à récupérer les pièces jointes d'un mail sur un serveur pop.
    Un bout de 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
    IdPOP31.Host := 'pop.bidule.com';
    IdPop31.Username := 'login';
    IdPOP31.Password := 'password';
    IdPOP31.Connect();
    if IdPOP31.CheckMessages > 0 then
    begin
      IdPOP31.Retrieve(IdPOP31.CheckMessages,IdMessage1);
      for i:=0 to IdMessage1.MessageParts.Count-1 do
      begin
        if (IdMessage1.MessageParts.Items[i] is TIdAttachment) then
        begin
          IdAttachment(IdMessage1.MessageParts.Items[i]).SaveToFile('c:\ujr\ujr'+IntToStr(IdPOP31.CheckMessages)+'.zip');
        end;
      end;
    end;
    Bien entendu, IdPOP31 est unTIdPOP3 et IdMessage1 est un TIdMessage.

    Le problème est au niveau du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (IdMessage1.MessageParts.Items[i] is TIdAttachment) then
    même quand le message comporte une PJ, la condition est "false". En testant le type de chaque messageParts par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMessage(IdMessage1.MessageParts[i].ClassName);
    j'ai pu découvrir que ce sont toujours des TIdText. Je suis pourtant sûr de la présence d'une PJ.

    Quelqu'un aurait-il une idée sur l'origine du problème ?

    PS : Je sais pas si j'ai été très clair... Si vous voulez quelques précisions, n'hésitez pas à demander.

  2. #2
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 306
    Points
    2 306
    Par défaut
    bonjour,

    question bête : tu es sûr qu'il n'y a qu'un seul mail dans ta boite ?

    @++
    Dany

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Points : 38
    Points
    38
    Par défaut
    La question n'est pas si bête, mais oui, j'en suis certain...

  4. #4
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 306
    Points
    2 306
    Par défaut
    bonjour,

    je me souviens avoir eus des soucis avec la formulation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (IdMessage1.MessageParts.Items[i] is TIdAttachment)
    que j'avais avantageusement remplacé par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdMessage1.MessageParts.Items[i].ClassName = 'TIdAttachment'
    Qui a fonctionné, donc je n'ai pas cherché plus loin. Mais si tu dis que Classname ne vaut jamais TIdAttachment, je ne sais pas.

    @++
    Dany

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Points : 38
    Points
    38
    Par défaut
    bern ouais, c'est ça qui m'embête.
    Est-ce qu'une PJ peut être contenue directement dans le corps du message ?

  6. #6
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 306
    Points
    2 306
    Par défaut
    c'est quel type de pièce jointe ? Je sais que OE affiche les images directement dans le mail, mais est-ce pour autant que la pj est incluse dans le texte, ou est-ce juste une interprétation de la pj, je sais pas.
    Essaye peut-être avec les composant ICS, ils sont plus ardus à prendre en main, mais ils permettent un meilleurs controle.

    @++
    Dany

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut meme problème
    dj_lil j'ai le meme problème que toi. mais c'est surtout avec les mails venant de yahoo.ils s'agit des mail qui sont dans ma boite yahoo qui ont des pieces jointes; si je les fais suivre vers une autre boite mail, c'est la que mon programme se comporte comme si ce mail n'avait pas de pièce jointe en téléchargeant les mails de cette seconde boite. Qui peut avoir une solution?

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/01/2015, 19h02
  2. Réponses: 0
    Dernier message: 18/01/2015, 11h59
  3. Récupérer les pièces jointes des emails d'outlook
    Par Décibel dans le forum VBA Access
    Réponses: 6
    Dernier message: 18/05/2008, 21h42
  4. récupérer les pièces jointes d'un mail [Outlook Express]
    Par chrisledeveloppeur2 dans le forum Delphi
    Réponses: 2
    Dernier message: 10/01/2007, 08h57

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