2012-01-31 15 views
16

sto utilizzando Outlook 2007 - e la mia casella di posta principale: Tait, MarkGet riferimento alla ulteriore Inbox

Ho anche aggiunto un'altra casella di posta al mio profilo: Procurement, Richiedi

Entrambi appaiono come livello superiore cartelle all'interno di Outlook:

Posta elettronica - Tait, Mark> -Conversation Storia
Articoli -deleted
-Drafts
- Inbox
-Junk E-Mail

Mailbox - Procurement, Richiedi
--Conversation Storia
Oggetti --Deleted
--Drafts
--Inbox
--Junk E-Mail

posso ottenere un riferimento alla mia posta in arrivo predefinita (Tait, Mark) utilizzando:
Set Inbox = ns.GetDefaultFolder(olFolderInbox)

Come si ottiene un riferimento alla Posta in arrivo nella casella di posta "Procurement, Request"?

risposta

16

Qualcosa del genere dovrebbe fare il trucco

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

Questo legame ha un codice utile per handling different Inboxes - può essere di interesse

+0

Grazie mille !!! :) – Mark

+0

@MarkTait contento di aver aiutato :) – brettdj

+0

Funzionerà solo se il negozio è già stato aggiunto al profilo curvo. –

3

Usa Namespace.GetSharedDefaultFolder. Funzionerà anche se la cassetta postale non è aperta nel profilo corrente. Hai ancora bisogno di avere il diritto di aprire la cassetta postale e accedere alla cartella in questione, naturalmente:

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

Se è necessario aprire la cassetta postale dell'altro utente (con tutti al largo delle sue cartelle), è possibile utilizzare Redemption e la sua RDOSession metodo .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

Si prega di approfondire come questo codice risponde alla domanda. – JAL

Problemi correlati