Как получить SMTP-адрес текущего магазина Outlook - PullRequest
0 голосов
/ 20 сентября 2019

У нас есть пользователь с 3-4 общим адресом электронной почты в Outlook.Я разрабатываю надстройку, в которой он извлекает адрес электронной почты выбранного магазина и получает контактную папку от People.

Моя проблема в том, что я не знаю, как получить адрес электронной почты SelectedStore.Вот мой код.

            string recipientName = SelectedStore.EmailAddress; // This is what I want to make it work

            Outlook.Recipient recip = ns.CreateRecipient(recipientName);
            recip.Resolve();

            if (recip.Resolved)
            {
                Outlook.MAPIFolder folderContacts = ns.GetSharedDefaultFolder(recip, Outlook.OlDefaultFolders.olFolderContacts);
            }

Любая помощь будет оценена.

Спасибо.

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

Для владельца почтового ящика вы можете либо попытаться прочитать свойство MAPIFolder.Store, чтобы перейти в родительское хранилище, а затем прочитать свойство PR_MAILBOX_OWNER_ENTRYID (имя DASL "http://schemas.microsoft.com/mapi/proptag/0x661B0102"), используя Store.PropertyAccessor.GetProperty.Затем вы можете использовать идентификатор записи владельца магазина для вызова Namespace.GetAddressEntryFromID.Когда у вас есть объект AddressEntry, вы можете использовать AddressEntry.GetExchangeUser.PrimarySmtpAddress.

Обратите внимание, что свойство PR_MAILBOX_OWNER_ENTRYID доступно только в онлайн-магазинах.Возможно, вы захотите использовать Redemption и его RDOExchangeMailboxStore .Owner.SmtpAddress свойство.RDOExchangeMailboxStore можно получить с помощью RDOSession.GetRDOObjectfromOutlookObject (Store) или с помощью RDOSession.GetStoreFromID.

Вы также можете попытаться получить идентификатор записи магазина и проанализировать его - его формат задокументирован, и вы можете извлечь адрес типа EX длявладелец.Затем вы можете создать идентификатор записи GAL, чтобы открыть объект AddressEntry.Оттуда вы можете получить SMTP-адрес.

0 голосов
/ 20 сентября 2019

Просто чтобы вы знали, я нашел решение.

Outlook.MAPIFolder folderContacts = store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);

должно сработать.

...