Я только что понял, как установить заголовок (см. How to set the contact title using the EWS Java API (Exchange Web Service)?). Теперь я пытаюсь установить отображаемое имя электронной почты 1.Как установить контакт Email1DisplayName с использованием API-интерфейсов EWS (Exchange Web Service)?
Если я использую открытый API Contact.getEmailAddresses(). SetEmailAddress(), отображаемое имя автоматически устанавливается таким же, как адрес электронной почты (и переопределяет мои расширенные свойства).
Итак, теперь я пытаюсь установить полную электронную почту через расширенные свойства. Это почти работает, за исключением случаев, когда я смотрю адресную книгу, имя и отображаемое имя пустые.
У меня такое ощущение, что это связано с свойством Email1OriginalEntryId, которое я не знаю, как правильно установить.
Любые идеи?
Моя текущая попытка выглядит следующим образом:
ExtendedPropertyDefinition propDef_PidLidEmail1DisplayName = new ExtendedPropertyDefinition(//
UUID.fromString("00062004-0000-0000-C000-000000000046"), 0x8080, MapiPropertyType.String);
ExtendedPropertyDefinition propDef_PidLidEmail1AddressType = new ExtendedPropertyDefinition(//
UUID.fromString("00062004-0000-0000-C000-000000000046"), 0x8082, MapiPropertyType.String);
ExtendedPropertyDefinition propDef_PidLidEmail1EmailAddress = new ExtendedPropertyDefinition(//
UUID.fromString("00062004-0000-0000-C000-000000000046"), 0x8083, MapiPropertyType.String);
ExtendedPropertyDefinition propDef_PidLidEmail1OriginalDisplayName = new ExtendedPropertyDefinition(//
UUID.fromString("00062004-0000-0000-C000-000000000046"), 0x8084, MapiPropertyType.String);
ExtendedPropertyDefinition propDef_PidLidEmail1OriginalEntryId = new ExtendedPropertyDefinition(//
UUID.fromString("00062004-0000-0000-C000-000000000046"), 0x8085, MapiPropertyType.Binary);
ExchangeService mailbox = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
mailbox.setUrl(new URL("https://remote.domain.com/EWS/exchange.asmx").toURI());
ExchangeCredentials credentials = new WebCredentials("user.name", "pw", "domain");
mailbox.setCredentials(credentials);
Contact c = new Contact(mailbox);
c.setGivenName("GivenName");
c.setSurname("Surname");
// c.getEmailAddresses().setEmailAddress(EmailAddressKey.EmailAddress1, new EmailAddress("[email protected]"));
c.setExtendedProperty(propDef_PidLidEmail1AddressType, "SMTP");
c.setExtendedProperty(propDef_PidLidEmail1EmailAddress, "[email protected]");
c.setExtendedProperty(propDef_PidLidEmail1OriginalDisplayName, "[email protected]");
c.setExtendedProperty(propDef_PidLidEmail1DisplayName, "A12 B12 ([email protected])");
// c.setExtendedProperty(propDef_PidLidEmail1OriginalEntryId, ???);
c.save(WellKnownFolderName.Contacts);