2012-05-08 3 views
2

Я изучаю создание плагина Outlook, в котором я могу выбрать разговор из папки «История разговоров», а затем нажмите кнопку, которая сохранит ее в папке. У кого-нибудь есть какие-либо указания на то, как я могу выбрать папку истории бесед и запустить поиск через C#, а также выбрать разговоры.История разговора Outlook

+0

Также при использовании моих методов ниже обязательно использовать Global.OutlookApplication или все, что вы вызываете надстройку. Из этого он возвращает список почтовых объектов, поэтому просто отформатируйте его на любой источник данных, который вы хотите отобразить на каждом его поле. – TheMonkeyMan

+0

Может также поставить этот комментарий в ответ. – R0MANARMY

ответ

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

И

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

Публикация решения для тех, кому это нужно. Поскольку библиотека Microsoft Document предоставляет очень окольный способ делать что-то. – TheMonkeyMan

Смежные вопросы