2012-11-14 112 views
1

如何从Outlook子文件夹读取邮件?我可以从收件箱中阅读,但我不知道如何从我在Inbox中创建的文件夹中阅读。从Outlook子文件夹读取电子邮件

这里我的控制台应用程序简单的代码:

Sub Main() 

    Dim otkApp As Outlook.Application = New Outlook.Application 
    Dim otkMailItem = "IPM.Note" 
    Dim otkNameSpace As Outlook.NameSpace = otkApp.GetNamespace("MAPI") 
    Dim otkInboxFolder As Outlook.MAPIFolder = otkNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) 
    Dim otkMailItems As Outlook.Items = otkInboxFolder.Items 
    Dim otkMessage As Outlook.MailItem 
    Dim iCntr As Integer 

    MsgBox(otkMailItems.Count) 
    For iCntr = 1 To otkMailItems.Count 
     If otkMailItems.Item(iCntr).MessageClass = otkMailItem Then 
      otkMessage = otkMailItems.Item(iCntr) 

      Console.WriteLine(iCntr) 
      Console.WriteLine(otkMessage.SenderName) 
      Console.WriteLine(otkMessage.Subject) 
      Console.WriteLine(otkMessage.ReceivedTime) 
      Console.WriteLine(otkMessage.Body) 
      Console.WriteLine("______________________________") 
     End If 
    Next 

    otkApp = Nothing 
    otkNameSpace = Nothing 
    otkMailItems = Nothing 
    otkMessage = Nothing 
End Sub 

我觉得这一行应改为:

Dim otkInboxFolder As Outlook.MAPIFolder = otkNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) 

从我想要阅读的邮件我的文件夹是:

Inbox -> domain.com -> [email protected] 

回答

0

您可以使用Outlook.NameSpace.Folders(“folder_name”)属性。每次调用此属性时,它都会返回一个MAPIFolder,它也具有文件夹属性,因此,如果要访问嵌套文件夹,则可以使用它。例如,假设您要访问名为“收件箱”的文件夹,它是文件夹“domain.com”,这是文件夹“[email protected]”里面里面,你会使用以下:

Dim otkInboxFolder As Outlook.MAPIFolder = otkNameSpace.Folders("[email protected]").Folders("domain.com").Folders("Inbox") 
+1

一些评论可能有助于解释这个答案。 – PaulG

0

如果收件箱文件夹的子文件夹,您可以使用MAPIFolder。文件夹集合以获取子子文件夹。

Dim otkInboxFolder As Outlook.MAPIFolder = otkNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) 
Dim SubFolder = otkInboxFolder.Folders.Item*"TheSubfolderName") 
Dim otkMailItems As Outlook.Items = SubFolder .Items 
相关问题