0

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

提前致谢。

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

1 回答 1

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

于 2013-07-22T12:47:56.853 回答