Outlook et dossier personnels [Résolu]

Signaler
Messages postés
4
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 janvier 2008
-
Messages postés
4
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 janvier 2008
-
Bonjour,

Je dois checker la presence de fichier dans un dossier personnels Outlook.
Je n'ai pas de probleme pour rechercher dans des dossiers sous Inbox. Par contre, impossible de
 me déplacer dans des dossiers personnels outlook à partir de C# sans utiliser redemption.
J'y suis depuis 4 jours sans succes. Je craque.

Si quelqu'un à une solution pour m'aider

Merci

4 réponses

Messages postés
4
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 janvier 2008

Bonjour,
bon j'ai trouvé alors j'en fais profiter

using Outlook = Microsoft.Office.Interop.Outlook;
using MAPI;
using System.Reflection;

               MAPI.Folder MapiFolderRoot;
                MAPI.Folders MapiFolders;
                MAPI.Folder MapiFolder;
                MAPI.Message mess;
                MAPI.CdoSortOrder TriDate;
                Session session = new Session();
                string  login = Environment.UserName.ToString();

                session.Logon(login, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                MAPI.Folder folder = (MAPI.Folder)session.Inbox;

                foreach (MAPI.InfoStore Is in (IEnumerable)session.InfoStores)
                {
                    MapiFolderRoot = (MAPI.Folder)Is.RootFolder;
                    MapiFolders = (MAPI.Folders)MapiFolderRoot.Folders;
                    MapiFolder = (MAPI.Folder)MapiFolders.GetFirst();
                    while (MapiFolder != null)
                    {
                      // MailRepertoire:repertoire dans lequel je cherche
                        if (MapiFolder.Name.ToString() == MailRepertoire)
                        {
                            MAPI.Messages messages = (MAPI.Messages)MapiFolder.Messages;
 
                            int messageCount = (int)messages.Count;
                            mess = (MAPI.Message)messages.GetNext();
                          
                            ligne["POJ_Resultat"] = 1;
                            //MailObjet chaine de caractere que je recherche dans l'objet du mail
                            Regex Regexobj = new Regex(MailObjet);
                            Regex RegexDateRec = new Regex(MailDateReception);
                            int rech = 1;

                            for (int i = messageCount; i > 1; i--)
                            {

                                if (Regexobj.IsMatch((string)mess.Subject))
                                {
                                    if (RegexDateRec.IsMatch(Convert.ToString(mess.TimeReceived)))
                                    {
                                        if (ChaineRecherche.Length == 0)
                                        {
                                            rech = 0;
                                        }
                                        else
                                        {
                                        //ChaineRecherche chaine de caractere que je recherche dans le corps du mail
                                            rech = (methchaineM.DecoupeCorpsMail((string)mess.Text, ChaineRecherche));
                                        }
                                        ligne["POJ_Resultat"] = rech;
                                        i = 0;
                                        if (rech == 0)
                                        {
                                            MapiFolder = (MAPI.Folder)MapiFolders.GetLast();
                                            break;
                                        }
                                    }
                                }
                                mess = (MAPI.Message)messages.GetNext();
                            }
                        }
                        MapiFolder = (MAPI.Folder)MapiFolders.GetNext();
                    }
                }

            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                MessageBox.Show(e.Message);
            }

il ne me manque plus qu' à trier les mails par date de reception
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
as-tu regardé sur ce site : http://www.outlookcode.com/ ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Il a l'air sympa ce site, je ne connaissais pas.
Serait bien s'il mettait à jour pour Office 2007 !

<hr />
-My Blog-
Messages postés
4
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
10 janvier 2008

Bonjour et merci pour ta reponse Sebastien.
Je n'ai pas trouvé mon bonheur sur le site.
Pour corriger et completer ce que je disais, je sais lire dans Inbox mais pas dans les repertoires sous Inbox
ni dans les dossiers personnels. Je suis sous Outlook 2003
voici mon code

                    Session session = new Session();
                    session.Logon( ("bobby92",                    
                    Missing.Value,
                    Missing.Value,
                    Missing.Value,
                    Missing.Value,
                    Missing.Value,
                    Missing.Value
                    );
                    MAPI.Folder folder = (MAPI.Folder)session.Inbox;
                    MAPI.Messages messages = (MAPI.Messages)folder.Messages;

                    int messageCount = (int)messages.Count;

                    for (int i = messageCount; i > 1; i--)
                    {
                        MAPI.Message mess = (MAPI.Message)messages.GetNext();
                        string s = (string)mess.Subject;
                        string t = (string)mess.Text;
                        string r = (string)mess.TimeReceived;
                    }
Merci pour votre aide