How to get the MailItems of a specific folder in Outlook

后端 未结 2 1811
借酒劲吻你
借酒劲吻你 2021-01-29 14:05

My folder is called \"Request Mailbox\" in Outlook

How can I get a list of all mailitems in that folder

相关标签:
2条回答
  • 2021-01-29 14:14

    To get list of MailItems, you can simply do this

    MailItem list will be displayed as Email

    Option Explicit
    Sub MailItems()
        Dim olNamespace As Outlook.NameSpace
        Dim olFolder  As Outlook.MAPIFolder
        Dim olItem As Outlook.MailItem
    
        Set olNamespace = Application.GetNamespace("MAPI")
        Set olFolder = olNamespace.GetDefaultFolder(olFolderInbox).Folders("Request Mailbox")
    
        Set olItem = Application.CreateItem(olMailItem) ' Creat EMail
        With olItem
            For Each olItem In olFolder.Items
                Debug.Print olItem.Subject ' Print to immediate window
                .body = .body & olItem.Subject & vbCrLf ' Print to Email
                Debug.Print olItem.SenderName
                .body = .body & olItem.SenderName & vbCrLf
                Debug.Print olItem.ReceivedTime
                .body = .body & olItem.ReceivedTime & vbCrLf & vbCrLf
            Next ' vbCrLf = vb: Visual Basic Cr: Carriage Return Lf: LineFeed
            .Subject = "Mail Items" ' Subject
            .Display    ' Display Msg
        End With
    
    End Sub
    

    For Shared Folder Try this

    Option Explicit
    Sub ShareMailItems()
        Dim olNamespace As Outlook.NameSpace
        Dim olShareName As Outlook.Recipient
        Dim olShareInbox As Outlook.Folder
        Dim olItem As Outlook.MailItem
    
        Set olNamespace = Application.GetNamespace("MAPI")
        Set olShareName = olNamespace.CreateRecipient("0m3r@email.com") '// Owner's email address
        Set olShareInbox = olNamespace.GetSharedDefaultFolder( _
                     olShareName, olFolderInbox).Folders("Request Mailbox") '// FolderName
    
        Set olItem = Application.CreateItem(olMailItem) ' Creat EMail
        With olItem
            For Each olItem In olShareInbox.Items
                Debug.Print olItem.Subject ' Print to immediate window
                .body = .body & olItem.Subject & vbCrLf ' Print to Email
                Debug.Print olItem.SenderName
                .body = .body & olItem.SenderName & vbCrLf
                Debug.Print olItem.ReceivedTime
                .body = .body & olItem.ReceivedTime & vbCrLf & vbCrLf
            Next ' vbCrLf = vb: Visual Basic Cr: Carriage Return Lf: LineFeed
            .Subject = "Mail Items" ' Subject
            .Display    ' Display
        End With
    End Sub
    
    0 讨论(0)
  • 2021-01-29 14:36

    For a delegate mailbox already open in Outlook, use Application.Session.Folders.("TheDelegateMialboxName@YourCompany.com").Folders("TheFolderName")

    0 讨论(0)
提交回复
热议问题