Imports System
Imports System.Collections.Generic
Imports Microsoft.Office.Interop.Outlook
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Lst As List(Of Email) = OutlookInbox.GetMail("MailboxName")
For i As Integer = 0 To Lst.Count - 1 Step 1
ListView1.Items.Add(Lst(i).Subject)
Next
End Sub
End Class
Public Class OutlookInbox
Public Shared Function GetMail(ByVal mailBoxName As String) As List(Of Email)
Dim list As New List(Of Email)()
Dim app As New Application()
Dim NS As [NameSpace] = app.GetNamespace("MAPI")
Dim foundMailBox As Boolean = False
Dim foundInbox As Boolean = False
For Each mailboxFolder As MAPIFolder In NS.Folders
If mailboxFolder.Name = "Mailbox – " + mailBoxName Then
foundMailBox = True
For Each inboxFolder As MAPIFolder In mailboxFolder.Folders
If inboxFolder.Name = "Inbox" Then
foundInbox = True
For Each item As Object In inboxFolder.Items
Dim mailItem As MailItem = TryCast(item, MailItem)
If mailItem IsNot Nothing Then
Dim email As New Email()
email.Subject = mailItem.Subject
email.DateReceived = mailItem.ReceivedTime
list.Add(email)
End If
Next
Exit For
End If
Next
Exit For
End If
Next
If Not foundMailBox Then
Throw New ApplicationException(String.Format("Mailbox for ‘{0}’ not found", mailBoxName))
End If
If Not foundInbox Then
Throw New ApplicationException(String.Format("Inbox for ‘{0}’ not found", mailBoxName))
End If
Return list
End Function
End Class
Public Class Email
Public Subject As String
Public DateReceived As DateTime
End Class