C# Outlook会话历史记录
我正在研究创建一个outlook插件,我可以从对话历史文件夹中选择一个对话,然后单击一个按钮将其保存到一个文件夹中。有没有人能告诉我如何选择对话历史记录文件夹,如何通过C#运行搜索,以及如何选择对话。C# Outlook会话历史记录,c#,outlook,office-interop,C#,Outlook,Office Interop,我正在研究创建一个outlook插件,我可以从对话历史文件夹中选择一个对话,然后单击一个按钮将其保存到一个文件夹中。有没有人能告诉我如何选择对话历史记录文件夹,如何通过C#运行搜索,以及如何选择对话。public static List GetFolders() public static List<Outlook.MAPIFolder> GetFolders() { List<Outlook.MAPIFolder> _list = ne
public static List GetFolders()
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();
}
{
列表_List=新列表();
Outlook.MapipFolder root=OutlookApplication.Session.DefaultStore.GetRootFolder();
foreach(根文件夹中的Outlook.MAPIFolder文件夹)
{
_列表。添加(文件夹);
}
返回列表;
}
公共静态Outlook.MAPIFolder GetFolderByEntryId(字符串entryId)
{
List folders=GetFolders();
返回文件夹。其中(x=>x.EntryID==EntryID).FirstOrDefault();
}
公用静态Outlook.MAPIFolder GetFolderByName(字符串folderName)
{
List folders=GetFolders();
返回folders.Where(x=>x.Name==folderName).FirstOrDefault();
}
及
public静态列表GetSelectedItem()
{
列表_List=新列表();
Outlook.Selection-outlookSelection=OutlookApplication.ActiveExplorer().Selection;
for(int i=1;i
此外,在使用下面的“我的方法”时,请确保使用Global.OutlookApplication或任何调用加载项的应用程序。从中返回邮件对象列表,因此只需将其格式化为您希望显示的每个字段的任何数据源即可。还可以将此注释放入答案中。发布解决方案可以封装任何需要它的人。因为微软文档库提供了一种非常迂回的处理方式。
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;
}