none
Outlook 2010. Помогите получить информацию из карточки контакта программно. RRS feed

  • Вопрос

  • Добрый день. Пишу на Delphi:

    OL_App := CreateOleObject('Outlook.Application'); OL_NameSpace:=OL_App.GetNameSpace('MAPI'); objRecip:=OL_NameSpace.CreateRecipient(Edit1.Text); OL_FolderCon:= OL_NameSpace.GetSharedDefaultFolder(objRecip, olFolderContacts);

     OL_ItemApp:=OL_FolderCon.Folders('название папки').Items; ShowMessage(IntToStr(OL_ItemApp.count));

    Таким образом я получаю доступ ко всем полям "контакта". Но у него ещё есть и поля "сообщения", как мне к ним добраться?

    Имею в виду эти https://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.mailitem_properties.aspx поля.

    Буду признателен, если дадите код на другом языке. Т.е. суть проблемы в том что я подключаюсь к папке контакты и получаю доступ к полям контактов, которые описаны здесь: https://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.contactitem_properties%28v=office.14%29.aspx Но как мне получить доступ к полям сообщения( https://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.mailitem_properties.aspx ) не ясно.
    17 февраля 2015 г. 10:21

Ответы

  • Кому интересно, вот решение:

    https://social.msdn.microsoft.com/Forums/en-US/7a5a7399-943e-49f8-95ad-9b1c9e362bcc/outlook-contact-folder-get-all-fields?forum=outlookdev

    ContactItem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0E04001F")

    • Помечено в качестве ответа q2ker1 19 февраля 2015 г. 10:15
    19 февраля 2015 г. 10:14

Все ответы

  • Добрый день.

    А откуда в папке Контакты может оказаться письмо? Открывайте папку с письмами (Входящие, Отправленные), ну и там уже у вас будут элементы с этими свойствами...

    17 февраля 2015 г. 10:45
    Отвечающий
  • Если открыть контакты есть кнопка "Все поля"

    При разработке формы были допущены ошибки и теперь все e-mail хранятся в поле "Кому", а такое поле через "все поля" есть у группы полей "все поля сообщения"

    17 февраля 2015 г. 11:25
  • А сама форма и элемент контакты, в папке контакты
    17 февраля 2015 г. 11:26
  • Коллеги, не бросайте
    17 февраля 2015 г. 12:56
  • нашел интересный код

    Dim Contact As ContactItem
    
      ContactsFolder = Session.GetDefaultFolder(olFolderContacts)
    
    For Each Contact In ContactsFolder.Items
      Contact.UserProperties.Add("CustomCompanyField", olText).Value = Contact.CompanyName
    Next

    UserProperties стало быть указывает на блок "поля пользователя"

    Как по аналогии понять как называются другие поля? "Поле адреса", "Поле эл. почты" и т.д.?



    17 февраля 2015 г. 14:31
  • Кому интересно, вот решение:

    https://social.msdn.microsoft.com/Forums/en-US/7a5a7399-943e-49f8-95ad-9b1c9e362bcc/outlook-contact-folder-get-all-fields?forum=outlookdev

    ContactItem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0E04001F")

    • Помечено в качестве ответа q2ker1 19 февраля 2015 г. 10:15
    19 февраля 2015 г. 10:14
  • Спасибо, что поделились найденным решением.
    19 февраля 2015 г. 10:40
    Отвечающий