Отправлять почту из учетной записи не по умолчанию, которой нет в учетных записях сеансов - PullRequest
3 голосов
/ 10 февраля 2012

Я создал следующее ...

Outlook.MailItem oMail;
oMail = Inspector.CurrentItem;
Outlook.NameSpace session = oMail.Session;
Outlook.Accounts accounts = session.Accounts;

При циклическом просмотре учетных записей я получаю учетные записи, которые были физически добавлены в Outlook, но не те, которые добавлены через «дополнительные почтовые ящики ”в Настройки учетной записи -> Изменить -> Дополнительные настройки -> Дополнительно

Как получить к ним доступ и получить информацию об учетной записи, чтобы я мог использовать ее вoMail.SendUsingAccount = account

1 Ответ

2 голосов
/ 10 февраля 2012

В Outlook 2007+ приведенный ниже код предоставит вам почтовые ящики делегатов Exchange, к которым данный пользователь имеет доступ ( список «Открыть эти дополнительные почтовые ящики» ). Ключевым ингредиентом являются данные сеанса Stores и ExchangeStoreType.

foreach (var store in Globals.ThisAddIn.Application.Session.Stores.Cast<Outlook.Store>().Where(c=>c.ExchangeStoreType == Outlook.OlExchangeStoreType.olExchangeMailbox)) 
            Trace.WriteLine(store.DisplayName);

Чтобы отправить сообщение от имени другого почтового ящика, вы должны использовать свойство MailItem.SendOnBehalfName - поскольку технически у вас есть только одна учетная запись ( см. Это сообщение на форуме Outlook ).

...