Получить ссылку на дополнительную папку "Входящие" - программирование
Подтвердить что ты не робот

Получить ссылку на дополнительную папку "Входящие"

Я использую Outlook 2007 - и имею свой основной почтовый ящик: Tait, Mark

Я также добавил еще один почтовый ящик в свой профиль: Закупки, Запрос

Оба отображаются как папки верхнего уровня в Outlook:

Почтовый ящик - Tait, Mark > -Конверсионная история
-Делементированные предметы
-Drafts
-Inbox
-Junk E-Mail

Почтовый ящик - Закупки, Запрос
- История конференций
--Добавленные предметы
--Drafts
--Inbox
--Junk E-Mail

Я могу получить ссылку на мой почтовый ящик по умолчанию (Tait, Mark), используя:
Set Inbox = ns.GetDefaultFolder(olFolderInbox)

Как мне получить ссылку на папку "Входящие" в почтовом ящике "Закупки, запрос"?

4b9b3361

Ответ 1

Что-то вроде этого должно сделать трюк

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

В этой ссылке есть полезный код для обработки различных входящих сообщений - это может представлять интерес

Ответ 2

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

Ответ 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