2011-04-14 74 views
2

我想获得在Outlook中的所有邮件从特定的文件夹:获取在Outlook中的所有邮件从特定的文件夹

我的文件夹结构:

My folder structure

我觉得这Code让所有(不是收件箱中的图片!):

Outlook.Application oApp; 
Outlook._NameSpace oNS; 
Outlook.MAPIFolder oFolder; 
Outlook._Explorer oExp; 

oApp = new Outlook.Application(); 
oNS = (Outlook._NameSpace)oApp.GetNamespace("MAPI"); 
oFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); 
oExp = oFolder.GetExplorer(false); 
oNS.Logon(Missing.Value, Missing.Value, false, true); 

Outlook.Items items = oFolder.Items; 
foreach (Outlook.MailItem mail in items) 
{ 
    //do someting 
} 

有人可以告诉我如何从特定文件夹中获取所有邮件(l ike:wolfy-server)?

回答

2

这应该工作!

MAPIFolder mailsFromThisFolder; 

MAPIFolder mainFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); 

foreach (MAPIFolder folder in mainFolder.Folders) 
{ 
    GetFolders(folder); 
} 

public void GetFolders(MAPIFolder folder) 
{ 
    if (folder.Folders.Count == 0) 
    { 
      if (folder.Name == "Folder Name") 
      { 
       Console.WriteLine(m.FullFolderPath); 
       mailsFromThisFolder = folder; 
      } 
    } 
    else 
    { 
     foreach (MAPIFolder subFolder in folder.Folders) 
     { 
       GetFolders(subFolder); 
     } 
    } 
} 

Outlook.Items items = mailsFromThisFolder.Items; 
foreach (Outlook.MailItem mail in items) 
{ 
    //do someting 
} 
+1

绝对没有理由通过子文件夹循环。 Folders.Item可能是一个整数索引(1到Count)或子文件夹名称 – 2013-06-26 15:07:16

+0

当我尝试“foreach(Outlook.MailItem邮件中的项目)时出现错误” 无法投射类型为“System .__ ComObject”的COM对象以接口类型'Microsoft.Office.Interop.Outlook.MailItem'。 – Hitsa00 2017-07-21 14:01:01

1
  1. 登录必须拿出你做任何事情之前。
  2. 使用类似下面的

    oFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); oSubfolder = oFolder.Folders.Item(“wolfy-server”);

相关问题