我正在使用Outlook 2007 - 并拥有我的主邮箱:Tait,Mark
我还在我的个人资料中添加了另一个邮箱:采购,请求
两者都显示为Outlook中的顶级文件夹:
邮箱 - Tait,Mark> - 会话历史
- 删除物品
-Drafts
-inbox
- 垃圾邮件邮箱 - 采购,请求
- 会话历史
- 删除物品
--Drafts
--Inbox
- 垃圾邮件
我可以使用以下方式获取对我的默认收件箱(Tait,Mark)的引用
Set Inbox = ns.GetDefaultFolder(olFolderInbox)
如何在“采购,申请”邮箱中获取对收件箱的引用?
答案 0 :(得分: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")
此链接包含handling different Inboxes的一些有用代码 - 可能会感兴趣
答案 1 :(得分: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
答案 2 :(得分:4)
使用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
如果您需要打开其他用户的邮箱(所有关闭其文件夹),您可以使用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