如何获取Outlook中特定文件夹的MailItems

时间:2015-06-23 16:56:59

标签: vba outlook-vba outlook-2013

我的文件夹在Outlook中名为 "Request Mailbox"

如何获取该文件夹中所有 mailitems 的列表

2 个答案:

答案 0 :(得分:1)

要获取 MailItems 的列表,您只需执行此操作

即可

MailItem列表将显示为电子邮件

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

对于共享文件夹试试此

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

答案 1 :(得分:1)

对于已在Outlook中打开的委托邮箱,请使用Application.Session.Folders.("TheDelegateMialboxName@YourCompany.com").Folders("TheFolderName")

相关问题