从Outlook子文件夹中读取电子邮件

时间:2012-11-14 10:15:11

标签: vb.net outlook

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

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

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 -> support@domain.com

2 个答案:

答案 0 :(得分:0)

您可以使用Outlook.NameSpace.Folders(“folder_name”)属性。每次调用此属性时,它将返回一个MAPIFolder,它也具有Folders属性,因此如果要访问嵌套文件夹,可以使用它

例如,假设您要访问名为“Inbox”的文件夹,该文件夹位于“domain.com”文件夹中,该文件夹位于“support@domain.com”文件夹中,您将使用以下内容:

Dim otkInboxFolder As Outlook.MAPIFolder = otkNameSpace.Folders("support@domain.com").Folders("domain.com").Folders("Inbox")

答案 1 :(得分:0)

如果它是收件箱文件夹的子文件夹,则可以使用MAPIFolder.Folders集合转到子子文件夹。

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