Bonjour,

Voici mon problème.

j'essaie de developper un programme qui me permet de récuper des infos qui se trouve dans les mails.

Le sujet du mail, l'email de l'emmeteur, et la date de reception.

Tous les mails se trouve dans le meme dossier, un dossier public.

Pour l'objet du mail aucun problème, j'arrive à tous les récuperer, par contre pour certains mail j'ai un problème avec l'emmeteur et la date. Et j'ai une erreur qui s'affiche.

("Error HRESULT E_FAIL has been returned from a call to a COM component.")

Voici le bout du code concerné .

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
 
public static void messagesPublicFolders(Outlook.Application o)
{
Outlook.MAPIFolder inboxFolder2 = o.GetNamespace("MAPI").GetDefaultFolder(Outlook.OlDefaultFolders.olPublicFoldersAllPublicFolders
);
Outlook.MAPIFolder inboxFolder3 = inboxFolder2.Folders["...."];
Outlook.MAPIFolder inboxFolder4 = inboxFolder3.Folders["...."];
Outlook.MAPIFolder inboxFolder5 = inboxFolder4.Folders["...."];
Outlook.MAPIFolder inboxFolder = inboxFolder5.Folders["...."];
Console.WriteLine("Boite de réception : {0} e-mails.", inboxFolder.Items.Count);
Console.WriteLine();
 
Outlook.Items inboxItems = inboxFolder.Items;
for(int i=1; i<= inboxItems.Count;i++)
{
object item = inboxItems[i];
 
string Subject = item.GetType().InvokeMember("Subject", System.Reflection.BindingFlags.GetProperty, null, item, null).ToString();
Console.WriteLine(Subject);
 
try
{
string Sendername = item.GetType().InvokeMember("SenderName", System.Reflection.BindingFlags.GetProperty, null, item, null).ToString();
 
Console.WriteLine(Sendername);
}
catch (Exception e)
{
Console.Error.WriteLine(e.InnerException.Message);
}
 
try
{
string Receivedtime = item.GetType().InvokeMember("ReceivedTime", System.Reflection.BindingFlags.GetProperty, null, item, null).ToString();
Console.WriteLine(Receivedtime);
}
catch (Exception e)
{
Console.Error.WriteLine(e.InnerException.Message);
}
}
J'ai remarquer une différence entre les sujet des mails, et le nom de l'emmeteur. Quand le programme C# veut acceder au nom de l'emmeteur, j'ai une boite de dialogue outlook qui s'ouvre et qui me demande l'accès à la boite. Je dois alors choisir le temps d'accès authorisé. 1/2/5 ou 10 min.


Merci

Edouard