首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取与非主邮箱关联的收件箱

获取与非主邮箱关联的收件箱
EN

Stack Overflow用户
提问于 2020-05-08 18:29:45
回答 2查看 60关注 0票数 0

我正在尝试获取特定电子邮件地址的收件箱,其中有多个地址连接到同一Outlook。

只有在检查主邮箱(Outlook中列出的第一个邮箱)时才能成功。

代码语言:javascript
运行
复制
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,我仍然会得到第一个电子邮件收件箱文件夹。

EN

回答 2

Stack Overflow用户

发布于 2020-05-08 19:45:27

此宏列出您有权访问的每个存储区以及包含其收件箱的顶级文件夹。它显示了如何访问非默认的存储区和文件夹。

我不确定这是不是一个完整的答案,但它会让你开始。尝试使用宏,然后带着任何问题返回。

代码语言:javascript
运行
复制
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
票数 0
EN

Stack Overflow用户

发布于 2020-05-08 20:08:01

此方法类似于NameSpace对象的GetDefaultFolder方法。

要获取配置文件中的所有商店,您需要使用Namespace类的Stores属性:

代码语言:javascript
运行
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61677073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档