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

C++Builder Discussion :

Comment recuperer les elements d'un message Outlook


Sujet :

C++Builder

  1. #1
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut Comment recuperer les elements d'un message Outlook
    Suite a cette discution
    Voici comment recuperer les elements d'un message
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    Variant vMSOutlook, vEspaceDeNom, vDossierReception, olFolderInbox;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
            try
    {
        vMSOutlook = Variant::GetActiveObject("Outlook.Application");
    }
            catch(...)
    {
        vMSOutlook = Variant::CreateObject("Outlook.Application");
    }
    vEspaceDeNom = vMSOutlook.OleFunction("GetNameSpace", "MAPI");
    /*
    Profile   Argument de type Variant facultatif. Nom du profil, en tant que valeur String, à utiliser pour la session.
    Password   Argument de type Variant facultatif. Mot de passe (le cas échéant), en tant que valeur String, associé au profil.
    ShowDialog   Argument de type Variant facultatif. Affectez-lui la valeur True pour afficher la boîte de dialogue d'ouverture de session MAPI.
    NewSession   Argument de type Variant facultatif. Affectez-lui la valeur True pour créer une session (n'utilise pas une session existante). Vous ne pouvez pas créer plusieurs sessions dans Outlook.
    Logon "myProfile", "myPassword", True, True
    */
       // Ici on utilise le profil par défaut
      vEspaceDeNom.OleFunction("Logon", "", "", true, true);
    // 3 = elements supprimes
    // 4 = boite d'envoi
    // 5 = elements envoyes
    // 6 = boite de reception
    // 9 = calendrier
    // 10 = contacts
    // 11 = boite de dialogue activer journal suivi messages
    // 12 = notes
    // 13 = taches
    // 14 = rappels
    // 15 = rappels
    // 16 = brouillons
    //
    vDossierReception = vEspaceDeNom.OlePropertyGet("GetDefaultFolder", 6);
    vDossierReception.OleFunction("Display");        
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    vEspaceDeNom.OleFunction("Logoff");
    vMSOutlook.OleFunction("Quit");        
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    Variant vEspaceDeNom, vDossierReception, vmyItem;
    vEspaceDeNom = vMSOutlook.OleFunction("GetNameSpace", "MAPI");
    vDossierReception = vEspaceDeNom.OlePropertyGet("GetDefaultFolder", 6);// boite de reception
    //ici on affiche les elements du deuxieme message recu
    vmyItem = vDossierReception.OlePropertyGet("Items", 1).OlePropertyGet("To");
    RichEdit1->Lines->Add(vmyItem);
    vmyItem = vDossierReception.OlePropertyGet("Items", 1).OlePropertyGet("Subject");
    RichEdit1->Lines->Add(vmyItem);
    vmyItem = vDossierReception.OlePropertyGet("Items", 1).OlePropertyGet("SenderEmailAddress");
    RichEdit1->Lines->Add(vmyItem);
    vmyItem = vDossierReception.OlePropertyGet("Items", 1).OlePropertyGet("Body");
    RichEdit1->Lines->Add(vmyItem);
    vmyItem = vDossierReception.OlePropertyGet("Items", 1).OlePropertyGet("ReceivedTime");
    RichEdit1->Lines->Add(vmyItem);
    }

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    80
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 80
    Par d�faut
    Merci blondelle pour ce code. Cependant peut tu me dire o� tu as eu toutes ces informations ? Car tu es l'auteur de la partie Outlook de la FAQ et j'aimerais en savoir un peut plus la dessus.

    Merci.

    [EDIT :] J'aimerais surtout savoir comment obtenir le num�ro du message lors d'un drag n drop.

  3. #3
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Les codes sont soit une traduction de code Delphi soit VBA
    L'aide en ligne VB Outlook donne de nombreux exemples, pour la traduction il y a la pratique et beaucoup de patience
    Les messages s'empilent les un sur les autres donc le dernier message a le numero le plus eleve

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    80
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 80
    Par d�faut
    Apr�s avoir fouill� un peut les codes et constantes VBA je m'en revient � vous sans succ�s. Savez vous si une constante permettrai de renvoyer le num�ro d'un e mail s�lectionn� dans Outlook ?

    Merci.

    [EDIT : ] Je crois avoir trouv� la constante en question : SELECTION du membre Explorer.

    Reste � savoir comment l'utiliser...

    J'ai le code en VBA :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub GetSelectedItems()
        Dim myOlApp As New Outlook.Application
        Dim myOlExp As Outlook.Explorer
        Dim myOlSel As Outlook.Selection
        Dim MsgTxt As String
        Dim x As Integer
        MsgTxt = "You have selected items from: "
        Set myOlExp = myOlApp.ActiveExplorer
        Set myOlSel = myOlExp.Selection
        For x = 1 To myOlSel.Count
            MsgTxt = MsgTxt & myOlSel.Item(x).To & ";"
        Next x
        MsgBox MsgTxt
    End Sub

  5. #5
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Salut Sixpounder
    Quelque chose comme ceci
    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
    20
    21
    22
    23
    24
    25
    26
     
    Variant vMSOutlook, vmyOlSel, vmyOlExp;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    String MsgTxt = "You have selected items from: ";
            try
    {
        vMSOutlook = Variant::GetActiveObject("Outlook.Application");
    }
            catch(...)
    {
        vMSOutlook = Variant::CreateObject("Outlook.Application");
    }
    vmyOlExp = vMSOutlook.OlePropertyGet("ActiveExplorer");
    vmyOlSel = vmyOlExp.OleFunction("Selection");
    for(int x = 1; x <= (vmyOlSel.OleFunction("Count")); x++)
    {
    ShowMessage(MsgTxt + (vmyOlSel.OlePropertyGet("Item", x).OlePropertyGet("To")) + ";");
    }
    }

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    80
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 80
    Par d�faut
    Merci je vais tester demain, ton code ressemble au mien mais je ne savais pas comment �crire avec la bonne syntaxe cette partie :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ShowMessage(MsgTxt + (vmyOlSel.OlePropertyGet("Item", x).OlePropertyGet("To")) + ";");
    En tout cas merci je te dirais si tout marche correctement demain.

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    80
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 80
    Par d�faut
    Ton code marche parfaitement ! Merci bien.

  8. #8
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Pas de quoi

Discussions similaires

  1. Comment recuperer les elements d'un ListView en C#
    Par Invit� dans le forum Windows Presentation Foundation
    R�ponses: 5
    Dernier message: 15/12/2013, 12h04
  2. [SqlServer 2005] Comment recuperer les messages erreurs
    Par pb_inge dans le forum MS SQL Server
    R�ponses: 1
    Dernier message: 23/04/2008, 14h01
  3. comment recuperer les messages de la console vers mon appli?
    Par makohsarah dans le forum Applications et environnements graphiques
    R�ponses: 1
    Dernier message: 01/09/2007, 11h59
  4. comment recuperer les messages
    Par devalender dans le forum D�buter
    R�ponses: 2
    Dernier message: 17/06/2004, 19h30

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