Получить ссылку на дополнительную папку "Входящие"
Я использую Outlook 2007 - и имею свой основной почтовый ящик: Tait, Mark
Я также добавил еще один почтовый ящик в свой профиль: Закупки, Запрос
Оба отображаются как папки верхнего уровня в Outlook:
Почтовый ящик - Tait, Mark > -Конверсионная история
-Делементированные предметы
-Drafts
-Inbox
-Junk E-Mail
Почтовый ящик - Закупки, Запрос
- История конференций
--Добавленные предметы
--Drafts
--Inbox
--Junk E-Mail
Я могу получить ссылку на мой почтовый ящик по умолчанию (Tait, Mark), используя:
Set Inbox = ns.GetDefaultFolder(olFolderInbox)
Как мне получить ссылку на папку "Входящие" в почтовом ящике "Закупки, запрос"?
Ответы
Ответ 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