Доступ к папке Outlook по умолчанию
Я работаю над приложением Outlook VBA, и мне нужно получить доступ к своей папке входящих сообщений, но у меня возникли некоторые проблемы. Я использую GetDefaultFoldder(olFolderInbox)
Однако у меня настроено несколько адресов электронной почты, и ни один из них не отображается в папке "Входящие" моей личной папки.
Итак, мой вопрос, где определена эта папка по умолчанию? Как мне узнать, какой почтовый ящик является почтовым ящиком по умолчанию? Я знаю, что есть также GetFolderFromID
метод, если бы я использовал это,
Как я могу найти идентификатор папки, чтобы указать на него?
Вот код, который я использую. Это из учебника в блоге Тимоти Чена Аллена, как видно из блога Тимоти. Код:
Sub find_unread()
On Error GoTo eh:
Dim ns As Outlook.NameSpace
Dim folder As MAPIFolder
Dim item As Object
Dim msg As MailItem
Set ns = Session.Application.GetNamespace("MAPI")
Set folder = ns.GetDefaultFolder(olFolderInbox)
For Each item In folder.Items
DoEvents
If (item.Class = olMail) And (item.UnRead) Then
Set msg = item
Debug.Print msg.SenderEmailAddress
msg.Display True
End If
Next
MsgBox "All messages in Inbox are read", vbInformation, "All Read"
Exit Sub
eh:
MsgBox Err.Description, vbCritical, Err.Number
End Sub
1 ответ
Вы можете использовать свойство Folders и объединить несколько свойств в папки, чтобы получить доступ к любой папке в пространстве имен. Некоторые примеры
Входящие (так же, как GetDefaultFolder(olInbox))
ns.Folders("Personal Folders").Folders("Inbox")
Подпапка папки "Входящие" с именем Backup
ns.Folders("Personal Folders").Folders("Inbox").Folders("Backup")
OtherInbox на том же уровне, что и личные папки
ns.Folders("OtherInbox")
GetDefaultFolder удобен для быстрого доступа к папке по умолчанию, но если вам нужно что-то отличное от значения по умолчанию, просто перейдите вниз по дереву со свойством Folders объекта NameSpace.