2012-05-08 2 views
2

Je suis à la recherche d'un plugin Outlook permettant de sélectionner une conversation dans le dossier Historique des conversations, puis de cliquer sur un bouton qui l'enregistre dans un dossier. Est-ce que quelqu'un a des indications sur la façon dont je peux sélectionner le dossier Historique des conversations et exécuter des recherches via C# ainsi que la sélection des conversations.Outlook Historique des conversations

+0

également lors de l'utilisation de mes méthodes ci-dessous assurez-vous d'utiliser le Global.OutlookApplication ou tout ce que vous appelez le Addin. À partir de cela, il renvoie une liste d'objets de messagerie, il suffit donc de la formater en fonction de la source de données que vous souhaitez afficher dans chaque champ. – TheMonkeyMan

+0

Mai aussi bien mettre ce commentaire dans la réponse. – R0MANARMY

Répondre

0
public static List<Outlook.MAPIFolder> GetFolders() 
    { 

     List<Outlook.MAPIFolder> _list = new List<Outlook.MAPIFolder>(); 

     Outlook.MAPIFolder root = OutlookApplication.Session.DefaultStore.GetRootFolder(); 


     foreach (Outlook.MAPIFolder folder in root.Folders) 
     { 
      _list.Add(folder); 
     } 

     return _list; 
    } 

    public static Outlook.MAPIFolder GetFolderByEntryId(string entryId) 
    { 
     List<Outlook.MAPIFolder> folders = GetFolders(); 
     return folders.Where(x => x.EntryID == entryId).FirstOrDefault(); 
    } 

    public static Outlook.MAPIFolder GetFolderByName(string folderName) 
    { 
     List<Outlook.MAPIFolder> folders = GetFolders(); 
     return folders.Where(x => x.Name == folderName).FirstOrDefault(); 
    } 

Et

public static List<Outlook.MailItem> GetSelectedItem() 
    { 
     List<Outlook.MailItem> _list = new List<Outlook.MailItem>(); 

     Outlook.Selection outlookSelection = OutlookApplication.ActiveExplorer().Selection; 

     for (int i = 1; i < outlookSelection.Count; i++) 
     { 
      Outlook.MailItem mailItem = (Outlook.MailItem)outlookSelection[i]; 

      _list.Add(mailItem); 
     } 

     return _list; 
    } 

    public static List<Outlook.MailItem> GetMailItems(string FolderName) 
    { 
     List<Outlook.MailItem> _list = new List<Outlook.MailItem>(); 

     Outlook.MAPIFolder theFolder = OutlookApplication.Session.GetFolderFromID(GetFolderByName(FolderName).EntryID); 

     foreach (Object item in theFolder.Items) 
     { 
      Outlook.MailItem mailItem = (Outlook.MailItem)item; 

      if (mailItem != null) 
      { 
       _list.Add(mailItem); 
      } 
     } 

     return _list; 

    } 
+0

En affichant la solution, tout le monde en a besoin. Comme la bibliothèque de documents de Microsoft donne un moyen très rond de faire les choses. – TheMonkeyMan