Forums Développement Multimédia

Aller au contenu

[C# .NET]

CODE PHP MySQL

3 réponses à ce sujet

#1 moise56

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 22 May 2008 - 14:57 PM

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é .

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);
}
}

Merci

Edouard

#2 t-servi.com

  • Members
  • PipPipPipPipPipPipPipPip
  • 765 messages

Posté 22 May 2008 - 15:46 PM

Salut,
L'erreur ne vient pas des blocs try-catch. Est-ce que tu aurais une plus grande description?
Intuitivement j'aurais dit que tu as un problème dans la boucle : for(int i=1; i<= inboxItems.Count;i++). As-tu essayé : for(int i=0; i< inboxItems.Count;i++) ?

Meilleures salutations.
Jean Tinguely Awais.

#3 moise56

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 23 May 2008 - 08:11 AM

Non en fait l'erreur venait de la mémoire qui ne se libérait pas assez vite pour traité les informations. J'ai utilisé les fonctions Marshal.ReleaseCOMObjet(), et l'erreur à disparue.

#4 t-servi.com

  • Members
  • PipPipPipPipPipPipPipPip
  • 765 messages

Posté 23 May 2008 - 08:31 AM

Salut,
Merci et bonne fin de journée.
Meilleures salutations.
Jean Tinguely Awais.



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP