copyright 1999 - 2014 by heinz prelle - hannover  - lenbachstraße 42 - www.visual-basic5.de | impressum
'Beispiel: VB .Net - Outlook - Ordner auflisten - Mails im Posteingang nach Subject auflisten

'Hinweis : Referenzieren Sie zu: COM - Microsoft Outlook 12.0 Object Library o.ä.
'
Option Explicit On
Option Strict Off

Imports Microsoft.Office.Interop

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
            Handles Button1.Click
        Dim ptEntryDirectory As String = String.Empty
        Dim TList As New List(Of String)
        Dim InBox As New List(Of String)

        TList = Me.EnumSubDirectoryFromPersonalDirectory(ptEntryDirectory, InBox)
        If TList IsNot Nothing Then
            For Each items As String In TList
                Me.ListBox1.Items.Add(items)
            Next
            If InBox IsNot Nothing Then
                For Each items As String In InBox
                    Me.ListBox2.Items.Add(items)
                Next
            Else
                '
            End If
        Else
            MessageBox.Show("Liste konnte nicht initialisiert werden.", "Info")
        End If
    End Sub

    Private Function EnumSubDirectoryFromPersonalDirectory( _
            ByRef ptEntryDirectory As String, _
            ByRef InboxList As List(Of String), _
            Optional ByVal SubjectDescription As Boolean = True _
            ) As List(Of String)
        Try
            Const PersonalFolder As Integer = 1
            Dim OutlookApplication As Outlook.Application = New Outlook.Application()
            Dim [MailItem] As Outlook.MailItem = Nothing
            Dim mapi As Outlook.NameSpace = OutlookApplication.GetNamespace("MAPI")
            mapi.Logon()
            Dim EntryDirectory As Outlook.Folders = mapi.Folders.Item(PersonalFolder).Folders()
            ptEntryDirectory = EntryDirectory.Parent.Name
            Dim TList As New List(Of String)

            For n As Integer = 1 To EntryDirectory.Count
                TList.Add(EntryDirectory.Item(n).Name)
                For k As Integer = 1 To EntryDirectory.Item(n).Folders.Count
                    TList.Add(Convert.ToChar(9) & EntryDirectory.Item(n).Folders.Item(k).Name)
                Next
            Next
            If Not SubjectDescription Then
                InboxList = Nothing
            Else
                Dim InboxFolder As Outlook.MAPIFolder = mapi.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
                For n As Integer = 1 To InboxFolder.Items.Count
                    [MailItem] = InboxFolder.Items.Item(n)
                    InboxList.Add([MailItem].Subject)
                Next
            End If
            mapi.Logoff()
            Return TList
        Catch ex As Exception
            Throw New Exception(ex.Message, ex.InnerException())
        End Try
        Return Nothing
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
            Handles MyBase.Load
        Me.CenterToScreen()
    End Sub

End Class
Sourcecode Visual Basic