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# Discussion :

Lire ses messages Outlook via application c#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut Lire ses messages Outlook via application c#
    Bonjour,

    Le code suivant permet de visualiser les emails contenus sur une boite Outlook

    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
     
                try 
                {
                  app = new Microsoft.Office.Interop.Outlook.Application();
                  ns = app.GetNamespace("MAPI");
                  ns.Logon(null,null,false, false);
                  inboxFolder = ns.Folders["Boîte aux lettres - Sebounty"].Folders["Inbox"];
                  subFolder = inboxFolder.Folders["Marco"];
                  Console.WriteLine("Folder Name: {0}, EntryId: {1}", subFolder.Name, subFolder.EntryID);
                  Console.WriteLine("Num Items: {0}", subFolder.Items.Count.ToString());
     
                  for(int i=1;i<=subFolder.Items.Count;i++)
                  {
                    item = (Microsoft.Office.Interop.Outlook.PostItem)subFolder.Items[i];
                    Console.WriteLine("Item: {0}", i.ToString());
                    Console.WriteLine("Subject: {0}", item.Subject); 
                    Console.WriteLine("Sent: {0} {1}", item.SentOn.ToLongDateString(), item.SentOn.ToLongTimeString());
                    Console.WriteLine("Categories: {0}", item.Categories);
                    Console.WriteLine("Body: {0}", item.Body);
                    Console.WriteLine("HTMLBody: {0}", item.HTMLBody);
                  }
                } 
                catch (System.Runtime.InteropServices.COMException ex) 
                {
                  Console.WriteLine(ex.ToString());
                }
    Le problème que je rencontre est le suivant :

    il se situe sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    item = (Microsoft.Office.Interop.Outlook.PostItem)subFolder.Items[i];

    l'erreur retournée est la suivante :

    Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' en type d'interface 'Microsoft.Office.Interop.Outlook.PostItem'. Cette opération a échoué, car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{00063024-0000-0000-C000-000000000046}' a échoué en raison de l'erreur suivante : Cette interface n'est pas prise en charge (Exception de HRESULT : 0x80004002 (E_NOINTERFACE)).
    Impossible pour moi de trouver une solution à ce problème ...

    Merci pour votre aide.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 99
    Par défaut
    Un subfolder n'est pas forcement un postitem et le cast suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    item = (Microsoft.Office.Interop.Outlook.PostItem)subFolder.Items[i];
    plante parce que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    subFolder->QueryInterface("{00063024-0000-0000-C000-000000000046}", &postItem) == E_NOINTERFACE
    Non?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut
    Merci pour ta question "realpasso" tu m'as mis la puce à l'oreille.

    En effet, j'etais persuadé que le type de mail testé était un "PostItem" ou "MailItem" ! Cependant le premier Email de mon subfolder était un "ReportItem" correspondant à un Undelivery Mail.

    donc la correction apportée est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    item = (Microsoft.Office.Interop.Outlook.ReportItem)subFolder.Items[i];
    Bonne journée.

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

Discussions similaires

  1. Application de suivi de message envoyé via outlook
    Par aristideman dans le forum Général Java
    Réponses: 0
    Dernier message: 10/09/2014, 16h18
  2. Recevoir ses messages avec Outlook fermé
    Par Popo16 dans le forum Outlook
    Réponses: 4
    Dernier message: 23/09/2007, 08h57
  3. Réponses: 8
    Dernier message: 23/01/2007, 21h02
  4. Lire ses messages Hotmail via outlook 2003
    Par vbbkevin6 dans le forum Outlook
    Réponses: 2
    Dernier message: 24/05/2006, 19h19
  5. [XML] Lire un fichier uniquement via mon application ?
    Par charliejo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 20/01/2006, 16h26

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