Meilleur auteur de réponses
Outlook - Compter les mails d'une boite - InteropServices.ComException

Question
-
Bonjour,
dans le cadre d'un projet, je me dois de compter les mails d'une boite aux lettres générique.
Voici le code mis en place en utilisant Microsoft Outlook 11.0 Object Library et Outlook 2003.Microsoft.Office.Interop.Outlook._Application lApplication = new Microsoft.Office.Interop.Outlook.Application(); NameSpace lNameSpace = lApplication.GetNamespace("MAPI"); MAPIFolder lRacineAbsolue = lNameSpace.Folders[lBalParcourue].Folders["Boîte de réception"]; MAPIFolder lRacine = lRacineAbsolue; lListesDesSousRepertoires.Add(lRacine); for (int lCompeur = 0; lCompeur < lListesDesSousRepertoires.Count; lCompeur++) { MAPIFolder lRepertoire = null; try { lRepertoire = (MAPIFolder)lListesDesSousRepertoires[lCompeur]; ......... } ......... foreach (MAPIFolder lSousRepertoire in lRepertoire.Folders) { lListe.Add(lSousRepertoire); } lListesDesSousRepertoires.AddRange(lListe); }<span style="white-space:normal"> </span>
Ma boite aux lettres a environ 300 dossiers et ce code fonctionne très bien sauf régulièrement sur des répertoires et de façons aléatoires. Sur ces répertoires lors de :
lRepertoire = (MAPIFolder)lListesDesSousRepertoires[lCompeur];
Il semblerait que je récupère bien un Objet MAPIFolder sauf qu'une grosse partie des propriétés soient en exception :
lRepertoire.FolderPath a levé une exception de type System.runtime.InteropServices.ComException Je ne peux donc pas récupérer les mails de ce dossier ni les sous répertoires.
En faisant différents tests, il arrive que les répertoires ne plantent plus, puis que des répertoires qui n'ont jamais eu de soucis partent en exception.
je pensais que des personnes puissent interagir avec les BALs et donc interférer avec mon code, mais l'application tourne de nuit depuis 2 semaines et les exceptions reviennent régulièrement et jamais sur les mêmes dossiers.
Auriez-vous des pistes de recherches? des idées de ces exceptions sur des répertoires?
En vous remerciant.lundi 21 mars 2011 16:13
Réponses
-
Bonjour j'ai une application qui permet de lire les mails, rendez vous et contact de boîte aux lettres local ou sous exchange.
Mais mon écriture pour le début de l'application est quelques peu différentes, je ne sais pas si cela peu avoir une incidence.
Application application = new OutlookDll.Application(); application.CreateObject("Outlook.Application"); Namespace nameSpace = _application.GetNamespace("MAPI"); //Ensuite pour lire la boîte de réception par défaut en local : OutlookDll.MAPIFolder dossierBoiteDeReception = Outlook.NameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
Par contre moi personnellement pour parcourir tous les dossiers et les sous dossiers, j'utiliserais plutôt :
foreach(OutlookDll.MAPIFolder dossier in dossierBoiteDeReception.Folders) { ... etcc }
je sais pas si cela va régler ton problème.
Cordialement,
Pascal.
Pascal.- Proposé comme réponse Pascal Saille mardi 19 avril 2011 04:34
- Marqué comme réponse bizet73 mardi 19 avril 2011 09:07
samedi 26 mars 2011 16:15
Toutes les réponses
-
Bonjour j'ai une application qui permet de lire les mails, rendez vous et contact de boîte aux lettres local ou sous exchange.
Mais mon écriture pour le début de l'application est quelques peu différentes, je ne sais pas si cela peu avoir une incidence.
Application application = new OutlookDll.Application(); application.CreateObject("Outlook.Application"); Namespace nameSpace = _application.GetNamespace("MAPI"); //Ensuite pour lire la boîte de réception par défaut en local : OutlookDll.MAPIFolder dossierBoiteDeReception = Outlook.NameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
Par contre moi personnellement pour parcourir tous les dossiers et les sous dossiers, j'utiliserais plutôt :
foreach(OutlookDll.MAPIFolder dossier in dossierBoiteDeReception.Folders) { ... etcc }
je sais pas si cela va régler ton problème.
Cordialement,
Pascal.
Pascal.- Proposé comme réponse Pascal Saille mardi 19 avril 2011 04:34
- Marqué comme réponse bizet73 mardi 19 avril 2011 09:07
samedi 26 mars 2011 16:15 -
Bonjour,
je suis désolé de ne pas avoir pris le temps de répondre ; j'ai été pris par le boulot.
votre solution a été testée mais n'a pas résolu le problème.
De façon totalement aléatoire, il arrive que des répertoires ne soient plus accessibles puis que le lendemain ce soit OK.
Ces erreurs ont été "acceptées" puisque cela représente un taux d'erreur compris entre 1 et 2%.
mardi 19 avril 2011 09:07