используя объектную модель outlook, могу ли я получить поля, которые я вижу в контакте outlook
-
06-07-2019 - |
Вопрос
Я могу просматривать глобальную адресную книгу, используя объектную модель outlook, но в любом случае, используя объектную модель outlook из csharp, я могу получить следующие свойства человека:
Город, штат, страна / регион кличка заглавие Телефон
Я не могу найти эти свойства в объекте AddressEntry.
<Ч>РЕДАКТИРОВАТЬ: я начал щедрость здесь. Я получил это с помощью запросов LDAP, но они такая боль. Я шокирован, что Outlook не поддерживает это в своем простом API. я хотел посмотреть, если кто-то еще работает или может объяснить / объяснить, почему Outlook не будет поддерживать это
Решение
Использование Microsoft.Office.Interop.Outlook
Вам необходимо использовать объект ExchangeUser и метод GetExchangeUser для объекта AddressEntry.
using System;
using Microsoft.Office.Interop.Outlook;
static class Program
{
static void Main(string[] args)
{
ExchangeUser oExUser;
Application app = new Microsoft.Office.Interop.Outlook.Application();
foreach (AddressList addressList in app.Session.AddressLists)
{
if (addressList.Name == "Global Address List")
{
foreach (AddressEntry item in addressList.AddressEntries)
{
Console.WriteLine(item.Address);
oExUser = item.GetExchangeUser();
if (oExUser != null)
{
Console.WriteLine(oExUser.FirstName);
Console.WriteLine(oExUser.LastName);
Console.WriteLine(oExUser.StreetAddress);
Console.WriteLine(oExUser.CompanyName);
Console.WriteLine(oExUser.Department);
Console.WriteLine(oExUser.OfficeLocation);
Console.WriteLine(oExUser.JobTitle);
}
Console.WriteLine();
}
}
}
Console.Read();
}
}
Другие советы
RDO и используется для вас? Он предлагает довольно мало того, что Outlook блокирует, включая адресные данные
Как всегда, когда приходится работать с объектной моделью Outlook, я рекомендую использовать библиотеку погашения . (Это будет связано с COM Interop из C #, но это не должно быть проблемой.) Там вы должны взглянуть на библиотеку RDO (Redemption Data Objects) , а там на RDOAddressBook объекты
и RDOAddressEntry
. Объект RDOAddressEntry
предоставляет все свойства, которые вы ищете.
Библиотека Redemption позволяет обойти проблемы, связанные с безопасностью Outlook, а также позволяет получить доступ к большему количеству свойств, чем в обычном OOM. К сожалению, я не могу предоставить вам рабочий образец для решения вашей конкретной проблемы, поскольку я пока использую библиотеку только для обработки почты. Но на сайте Redemption есть множество примеров кода.
Как указано в другом вопросе , вы можете приходится прибегать к прямому доступу к базе данных LDAP под адресной книгой.