Outlook et dossier personnels

Résolu
bobby92fr Messages postés 4 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 10 janvier 2008 - 17 déc. 2007 à 15:17
bobby92fr Messages postés 4 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 10 janvier 2008 - 10 janv. 2008 à 14:52
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

bobby92fr Messages postés 4 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 10 janvier 2008
10 janv. 2008 à 14:52
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
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
17 déc. 2007 à 15:31
as-tu regardé sur ce site : http://www.outlookcode.com/ ?

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

<hr />
-My Blog-
0
bobby92fr Messages postés 4 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 10 janvier 2008
18 déc. 2007 à 16:48
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
0
Rejoignez-nous