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

Delphi Discussion :

Utilisation d'OutLook avec Delphi


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 510
    Par défaut Utilisation d'OutLook avec Delphi
    Bonjour,

    J'essaye de récupérer mes messages Outlook en m'aidant de la FAQ avec le composant TOutlookApplication

    J'arrive bien à récupérer le sujet (oMail.Subject) et le nom de l'expéditeur (oMail.SenderName)

    Mais je n'arrive pas à récupérer l'adresse mail de l'expéditeur.

    J'ai essayé oMail.From (trouvé sur ce forum) mais cela n'a pas l'air de fonctionner.

    (J'ai besoin aussi du message, je vais essayer oMail.body )
    Quelqu'un peut il m'aider ?

    Merci

    Charly

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 36
    Par défaut
    Salut

    L'adresse de l'expéditeur est contenue dans la propriété SenderEmailAddress.

    Pour plus d'info sur les MailItem, je te conseille http://msdn2.microsoft.com/en-us/library/bb208402.aspx

    Birdyz

  3. #3
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 510
    Par défaut Recupération de messages Outlook
    Merci beaucoup pour ta réponse.

    J'ai essayé avec SenderEmailAdress, mais j'ai une erreur :
    Classe d'exeption EOleError avec le message : Méthode SenderEmailAdress non supportée par l'objet automation ?

    Voici mon 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
    20
    21
    22
      sDirName := 'C:\Temp\';
      oNameSpace := Outlook.GetNameSpace('MAPI');
      oNameSpace.Logon;
      //On se positionne dans le dossier de réception
      oDossier  := oNameSpace.GetDefaultFolder(olFolderInbox);
      //On récupère le nombre de mails
      iNbMail   := oDossier.Items.Count;
      //On teste si on a des mails
      L_NbMails.Caption := 'Nombre de mails : ' + IntToStr(iNbMail);
      if iNbMail > 0 then
      begin
        for i := 1 to iNbMail  do
        begin
          oMail := oDossier.Items(i);
          L_Number.Caption := '# '+ IntToStr(i) ;
          Try
            List1.Items.Add(omail.SenderEmailAddress+' ## '+oMail.Subject) ;
          Except
     
          End ;
        end;
      end;
    Est ce j'ai fait une bêtise ?

    Charly

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 36
    Par défaut
    A priori (j'ai pas Outlook ici donc je peux pas tester), oMail peux contenir autre chose que des mails. Il faudrait donc que tu ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if oMail.Class = olMail then
    afin de vérifié que tu te trouve sur un objet de type mail.

    Birdyz

  5. #5
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 510
    Par défaut Utilisation de Outlook
    Merci,

    mais je n'y arrive pas même avec le If, il ne trouve toujours pas SenderEmailAddress.

    J'ai regardé sur le site de Microsoft, c'est pourtant bien cela.

    Peut être que SenderEmailAddress n'est pas implémenté dans TOutLookApplication de Delphi.

    Merci encore pour tes conseils, si tu as un éclair de génie je suis preneur.

    A+

    Charly

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 36
    Par défaut
    Voila un bout de code que j'ai fait rapidos et qui fonctionne bien chez moi.
    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
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      vOutlookApplication, vNameSpace, vDossier, vMail : variant;
      bNew : boolean;
      iNbMail, i : integer;
      sDirName : string;
    const
      olFolderInbox = $00000006;
      olMail = 43;
    begin
      try
        vOutlookApplication := GetActiveOleObject('Outlook.Application');
      except
        vOutlookApplication := CreateOleObject('Outlook.Application');
        bNew := True;
      end;
      vNameSpace := vOutlookApplication.GetNamespace('mapi');
      vNameSpace.Logon('', '', true, true);
      try
        vDossier := vNameSpace.GetDefaultFolder(olFolderInbox);
        iNbMail := vDossier.Items.Count;
        for i := 1 to iNbMail  do
        begin
          vMail := vDossier.Items(i);
          if vMail.Class = olMail then
            ListBox1.Items.Append(vmail.SenderEmailAddress + ' ## ' + vMail.Subject) ;
        end;
      finally
        vNameSpace.LogOff;
        if bNew then
          vOutlookApplication.Quit;
      end;
    end;
    Il faut un uses sur ComObj. Par contre, je n'utilise pas l'objet TOutlookApplication, donc pas de uses sur Outlook8

    Birdyz

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/07/2010, 15h44
  2. [ utilisation du gomme avec Delphi]
    Par GHAZEL Taoufik dans le forum Imagerie
    Réponses: 0
    Dernier message: 28/12/2009, 17h41
  3. Conseil sur l'utilisation de postgreSQL avec Delphi 2007
    Par QAYS dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/10/2008, 10h11

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