如何在Outlook中检查文件夹类型

时间:2013-07-22 12:43:59

标签: c# outlook-2010

我正在开发一个outlook应用程序,并且知道Folder对象是新的,它取代了早期版本中使用的MAPI.Folder。现在的问题是: 1.我想通过使用Folder对象读取.pst文件,以便它能够分别检索包含传入邮件(收件箱文件夹)和传出邮件的所有文件夹。 2.为此,我需要区分我无法找到任何方法/属性的文件夹类型? 3.目前我必须传递MAPI文件夹作为根文件夹通过它成功遍历但它也选择了Calendar对象和Deleted Folder以及我不想要的(因为我告诉我想要收到来自所有的邮件)收件箱类型文件夹和已发送邮件)。

提前致谢。

Outlook.MAPIFolder inboxFolder = outlookNs.Stores[pstName].GetRootFolder(); //
getIncomingMails(inboxFolder);


private void getIncomingMails(Outlook.MAPIFolder rootFolder)
    {
        List<Outlook.MailItem> mailItems = new List<Outlook.MailItem>();
        Outlook.Folders subFolders = rootFolder.Folders;

        foreach (Outlook.Folder folder in subFolders)
        {
           Debug.WriteLine(folder.GetType().ToString());
            var restrictedItems = folder.Items.Restrict(filter);
            restrictedItems.Sort("[ReceivedTime]", true); //descending

            foreach (var item in restrictedItems)
            {
                if (item is Outlook.MailItem)
                {
                    mailItems.Add(item as Outlook.MailItem);
                 }
            }
         } 

1 个答案:

答案 0 :(得分:0)

你试过吗

if (item.GetType() == typeof( Outlook.MailItem )) {
    Outlook.MailItem mi = (Outlook.MailItem)item;

这使您可以访问更多属性和方法。

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.mailitem_properties%28v=office.14%29.aspx