我正在尝试获取特定电子邮件地址的收件箱,其中有多个地址连接到同一Outlook。
只有在检查主邮箱(Outlook中列出的第一个邮箱)时才能成功。
dim outlApp as Object
dim outlNsp as Object
dim outlMapp as Object
dim outlsubMapp as Object
dim Mappar as Object
outlApp = CreateObject("Outlook.Application")
outlNsp = outlApp.GetNamespace("MAPI")
outlMapp = outlNsp.Folders.item(Mail_username)
Mappar = outlMapp.Folders
outlsubMapp = Mappar.item(6)
'6 is olFolderInbox enum value
outlsubMapp = outlNsp.GetDefaultFolder(6)
'6 is olFolderInbox enum value
Inbox = outlsubMapp.Name
如果我更改了Mail_username,我仍然会得到第一个电子邮件收件箱文件夹。
发布于 2020-05-08 19:45:27
此宏列出您有权访问的每个存储区以及包含其收件箱的顶级文件夹。它显示了如何访问非默认的存储区和文件夹。
我不确定这是不是一个完整的答案,但它会让你开始。尝试使用宏,然后带着任何问题返回。
Sub ListStoresAndTopLevelFolders()
Dim FldrCrnt As Folder
Dim InxFldrChild As Long
Dim InxStoreCrnt As Long
Dim StoreCrnt As Folder
With Application.Session
For InxStoreCrnt = 1 To .Folders.Count
Set StoreCrnt = .Folders(InxStoreCrnt)
With StoreCrnt
Debug.Print .Name
For InxFldrChild = .Folders.Count To 1 Step -1
Set FldrCrnt = .Folders(InxFldrChild)
With FldrCrnt
Debug.Print " " & .Name
End With
Next
End With
Next
End With
End Sub
发布于 2020-05-08 20:08:01
此方法类似于NameSpace
对象的GetDefaultFolder
方法。
要获取配置文件中的所有商店,您需要使用Namespace
类的Stores
属性:
Sub EnumerateFoldersInStores()
Dim colStores As Outlook.Stores
Dim oStore As Outlook.Store
Dim oRoot As Outlook.Folder
On Error Resume Next
Set colStores = Application.Session.Stores
For Each oStore In colStores
Set oRoot = oStore.GetRootFolder
Debug.Print (oRoot.FolderPath)
EnumerateFolders oRoot
Next
End Sub
Private Sub EnumerateFolders(ByVal oFolder As Outlook.Folder)
Dim folders As Outlook.folders
Dim Folder As Outlook.Folder
Dim foldercount As Integer
On Error Resume Next
Set folders = oFolder.folders
foldercount = folders.Count
'Check if there are any folders below oFolder
If foldercount Then
For Each Folder In folders
Debug.Print (Folder.FolderPath)
EnumerateFolders Folder
Next
End If
End Sub
https://stackoverflow.com/questions/61677073
复制相似问题