Мне нужно перебирать MailItem
элементов в Selection
и читать их EntryID
и StoreID
значения для того, чтобы иметь возможность извлекать элементы почты позже (для фоновой обработки через Redemption). Есть ли способ получить StoreID
для MailItem
?Получить StoreID для MailItem (в пределах Выбор Outlook)
Я знаю, что он может быть получен через свойство StoreID
его материнской компании Folder
; однако это кажется весьма неэффективным, так как он должен создавать (и выпускать) COM-объект для родительской папки для каждого элемента. Есть ли более эффективный способ достичь этого?
Edit: Я не могу использовать Selection.Parent
свойства, так как она была введена только в Outlook 2007, и мне нужно поддерживать Outlook 2003. Кроме того, Sue Mosher состояния:
Parent
объектSelection
будет aExplorer
, так что вы можете использоватьSelection.Parent.CurrentFolder.Store
.
Однако, когда один выполняет поиск во «Все элементы Outlook», то кажется, что CurrentFolder
всегда будет указывать на папки поиска в главном магазине, который, как правило, биржа почтовых ящиков:
\\Mailbox - <username>\search folders\All Outlook Items
Поскольку поиск может соответствовать элементам в других магазинах, CurrentFolder.Store
не обязательно будет соответствовать хранилищу выбранных элементов, делая этот подход ненадежным.
Я нацелен на Outlook 2003; свойство 'Selection.Parent' было введено только в Outlook 2007. И я не думаю, что все почтовые элементы в' Selection' всегда будут иметь общий «StoreID». Поиски, например, могут охватывать несколько магазинов. – User3810621
Правильно - если «Parent» нацелен на несколько магазинов, вы должны использовать ['Item.Parent'] (http://msdn.microsoft.com/en-us/library/ff867611.aspx) для каждого элемента, есть не более эффективным способом. – SliverNinja
Хорошо, спасибо за вашу помощь. Я поддержу вас, как только у меня хватит репутации. – User3810621