Используйте 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
Если вам нужно открыть почтовый ящик другого пользователя (со всеми его папками), вы можете использовать Погашение и его 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