2016-12-16 3 views
0

Мое приложение предназначено для Office 2010 и выше. Я пытаюсь написать функцию, которая обрабатывает входящие письма автоматически. Однако я обнаружил, что событие будет инициировано только в том случае, если MailItem получен в учетной записи электронной почты по умолчанию. Если у пользователя есть несколько учетных записей электронной почты, добавленных в Outlook, я бы хотел, чтобы все они указывали на один и тот же обработчик событий, если это было возможно.Получить папку для конкретной учетной записи Outlook

Вот что я до сих пор:

var inbox = _outlookApplication.Session.GetDefaultFolder(OlDefaultFolders.olFolderInbox); 
items = inbox.Items; 

if (inbox != null) 
      items.ItemAdd += new ItemsEvents_ItemAddEventHandler(OnIncomingEmail); 

Я попытался перекручивание через _outlookApplication.Session.Accounts объект, но не мог найти способ, который позволил бы мне получить папки для конкретной учетной записи ,

Любая помощь была бы принята с благодарностью!

+1

См. [Этот вопрос] (http://stackoverflow.com/questions/33953386/vba-to-select-mailbox-if-an-account-has-multiple-mailboxs), который имеет код VBA, чтобы получить папку для каждая учетная запись - это может помочь. – stuartd

ответ

1

Вместо того, чтобы использовать Namespace.GetDefaultFolder, пройдите через коллекцию Namespace.Stores и позвоните по телефону Store.GetDefaultFolder. Будьте готовы обрабатывать ошибки, поскольку некоторые магазины (особенно если они не являются стандартными) могут иметь не все или, по крайней мере, некоторые папки по умолчанию.