Obtener referencia a una bandeja de entrada adicional

I'm using Outlook 2007 - and have my main mailbox: Tait, Mark

I have also added another mailbox to my profile: Procurement, Request

Both appear as top level folders within Outlook:

Mailbox - Tait, Mark> -Conversation History
-Deleted Items
-Drafts
-Inbox
-Junk E-Mail

Mailbox - Procurement, Request
--Conversation History
--Deleted Items
--Drafts
--Inbox
--Junk E-Mail

I can get a reference to my default Inbox (Tait, Mark) using:
Set Inbox = ns.GetDefaultFolder(olFolderInbox)

How do I get a reference to the Inbox in the "Procurement, Request" mailbox?

preguntado el 31 de enero de 12 a las 08:01

3 Respuestas

Algo como esto debería funcionar

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")

This link has some useful code for handling different Inboxes - it may be of interest

Respondido el 31 de enero de 12 a las 13:01

@MarkTait glad to have helped :) - brettdj

This will work only if the store was already added to the curent profile. - Dmitry Streblechenko

@brettdj please how can I automate the Set objFolder = objNS.Folders("Procurement, Request") and Set objFolder = objFolder.Folders("Inbox") into a function like Public Sub AppResponseManage(Item As Outlook.MailItem) that receive a Mailitem as a parameter (in other words how can I extract the mailbox name and the inbox folder name from a mail item?) Thanks a lot - user3177026

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

Respondido 26 Feb 16, 20:02

Explique cómo este código responde a la pregunta. - agua

Utilizan Namespace.GetSharedDefaultFolder. It will work even if the mailbox is not opened in the current profile. You still need to have the right to open the mailbox and access the folder in question of course:

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

If you need to open the other user's mailbox (with all off its folders), you can use Redención y sobre los RDOSesión.GetSharedMailbox method:

 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

Respondido 03 Abr '16, 22:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.