获取对其他收件箱的引用

Mar*_*ark 20 outlook vba outlook-vba

我正在使用Outlook 2007 - 并拥有我的主邮箱:Tait,Mark

我还在我的个人资料中添加了另一个邮箱:采购,请求

两者都显示为Outlook中的顶级文件夹:

邮箱 - Tait,Mark> - 会话历史 - 删除
项目
--Drafts
-Inbox
-Junk电子邮件

邮箱 - 采购,请求 -
会话历史
- 删除项目
--Drafts
--Inbox -
垃圾邮件

我可以使用以下命令获取对我的默认收件箱(Tait,Mark)的引用:
Set Inbox = ns.GetDefaultFolder(olFolderInbox)

如何在"采购,请求"邮箱中获取对收件箱的引用?

bre*_*tdj 18

这样的事情应该可以解决问题

Dim objNS As Outlook.NameSpace
Dim objFolder As Outlook.MAPIFolder
Set objNS = GetNamespace("MAPI")
Set objFolder = objNS.Folders("Procurement, Request")
Set objFolder = objFolder.Folders("Inbox")
Run Code Online (Sandbox Code Playgroud)

此链接有一些有用的代码用于处理不同的收件箱 - 它可能是有意义的


Dmi*_*nko 6

使用Namespace.GetSharedDefaultFolder. 即使未在当前配置文件中打开邮箱,它也会工作。当然,您仍然需要有权打开邮箱并访问有问题的文件夹:

Set vNamespace = Application.GetNamespace("MAPI")
set vRecipient = vNamespace.CreateRecipient("Procurement, Request")
if vRecipient.Resolve Then
  set vFolder = vNamespace.GetSharedDefaultFolder(vRecipient, olFolderInbox)
End If
Run Code Online (Sandbox Code Playgroud)

如果您需要打开其他用户的邮箱(所有文件夹都关闭),您可以使用Redemption及其RDOSession .GetSharedMailbox 方法:

 set Session = CreateObject("Redemption.RDOSession")
 Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set Store = Session.GetSharedMailbox("Procurement, Request")
 set vFolder = Store.GetDefaultFolder(olFolderInbox)
 MsgBox "The address of the mailbox owner: " & Store.Owner.Address
Run Code Online (Sandbox Code Playgroud)


小智 6

Dim olNS As NameSpace
Dim InputFolder As Outlook.MAPIFolder
Set olNS = Outlook.Application.GetNamespace("MAPI")

' Get reference to folder in users Mailbox for Input
Set InputFolder = olNS.Folders("Procurement, Request").Folders("Inbox")

' all the emails in the shared inbox are represented by:
InputFolder.Items
Run Code Online (Sandbox Code Playgroud)