2012-01-31 58 views
16

我使用Outlook 2007 - 和有我的主邮箱:大吉,马克获取参考额外的收件箱

我还添加其他邮箱我的个人资料:采购,请求

两个显示为顶层在Outlook文件夹:

邮箱 - 泰特,马克> -Conversation历史
-deleted项目
-Drafts
- 收件箱
-Junk电子邮件

邮箱 - 采购,请求
--Conversation历史
--Deleted项目
--Drafts
--Inbox
--Junk电子邮件

我可以用得到我的默认收件箱中的引用(大吉,马克):
Set Inbox = ns.GetDefaultFolder(olFolderInbox)

如何在“采购,请求”邮箱中获得对收件箱的引用?

回答

16

像这样的东西应该做的伎俩

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一些有用的代码 - 这可能是感兴趣

+0

非常感谢您! :) – Mark 2012-01-31 09:51:23

+0

@MarkTait很高兴能有所帮助:) – brettdj 2012-01-31 09:59:41

+0

只有当商店已被添加到curent配置文件时,此功能才有效。 – 2017-10-12 16:09:52

3

使用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 
5
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 
+0

请详细说明此代码如何回答问题。 – JAL 2016-02-26 17:23:25