2016-12-16 2 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. Будьте готовы обрабатывать ошибки, поскольку некоторые магазины (особенно если они не являются стандартными) могут иметь не все или, по крайней мере, некоторые папки по умолчанию.

Смежные вопросы