2015-06-23 6 views
-1

Моя папка называется "Request Mailbox" в Outlook,Как получить MailItems из определенной папки в Outlook,

Как я могу получить список всех mailitems в этой папке

+0

Где эта папку, расположенный по отношению к верхней и/или папке Входящие? –

+0

Это общий почтовый ящик. Это 1 уровень вниз –

+0

https://meta.stackexchange.com/a/5235/289619 если вы не возражаете – 0m3r

ответ

1

Чтобы получить список MailItems, вы можете просто сделать это

список MailItem будет отображаться 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 

Для общей папки Попробуйте

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("[email protected]") '// 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

Копия, вставленная с http://www.gregthatcher.com/ –

1

Для делегата почтового ящика уже открыт в Outlook, используйте Application.Session.Folders.("[email protected]").Folders("TheFolderName")

+0

Думаю, я пропустил эту часть, если я не ошибаюсь, нет ''. '' между 'Folders. (« The'? – 0m3r

+0

Да, вы правы. Или вы можете Expliiclty указать функцию Item вместо того, чтобы полагаться на свойство по умолчанию: 'Application.Session.Folders.Item ("[email protected]"). Folders.Item ("TheFolderName") ' –