【发布时间】:2020-06-25 07:33:56
【问题描述】:
我的文件夹在 Outlook 中称为 "Request Mailbox"
如何获取该文件夹中所有 mailitems 的列表
【问题讨论】:
-
该文件夹相对于顶部和/或收件箱文件夹位于何处?
-
这是一个共享邮箱。降了 1 级
标签: vba outlook outlook-2013
我的文件夹在 Outlook 中称为 "Request Mailbox"
如何获取该文件夹中所有 mailitems 的列表
【问题讨论】:
标签: vba outlook outlook-2013
对于已在 Outlook 中打开的代理邮箱,请使用 Application.Session.Folders.("TheDelegateMialboxName@YourCompany.com").Folders("TheFolderName")
【讨论】:
Folders.("The之间没有"."?
Application.Session.Folders.Item("TheDelegateMialboxName@YourCompany.com").Folders.Item("TheFolderName")
要获取 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
【讨论】: