diff --git a/src/java/davmail/exchange/ews/Field.java b/src/java/davmail/exchange/ews/Field.java index 02684307..e7d99b52 100644 --- a/src/java/davmail/exchange/ews/Field.java +++ b/src/java/davmail/exchange/ews/Field.java @@ -120,9 +120,9 @@ public class Field { FIELD_MAP.put("displayemail2", new ExtendedFieldURI(ExtendedFieldURI.DistinguishedPropertySetType.Address, 0x8090, ExtendedFieldURI.PropertyType.String)); // Email2DisplayName FIELD_MAP.put("displayemail3", new ExtendedFieldURI(ExtendedFieldURI.DistinguishedPropertySetType.Address, 0x80A0, ExtendedFieldURI.PropertyType.String)); // Email3DisplayName */ - FIELD_MAP.put("smtpemail1", new IndexedFieldURI("contacts:EmailAddress", "EmailAddress1")); - FIELD_MAP.put("smtpemail2", new IndexedFieldURI("contacts:EmailAddress", "EmailAddress2")); - FIELD_MAP.put("smtpemail3", new IndexedFieldURI("contacts:EmailAddress", "EmailAddress3")); + FIELD_MAP.put("smtpemail1", new IndexedFieldURI("contacts:EmailAddress", "EmailAddress1", "Contact", "EmailAddresses")); + FIELD_MAP.put("smtpemail2", new IndexedFieldURI("contacts:EmailAddress", "EmailAddress2", "Contact", "EmailAddresses")); + FIELD_MAP.put("smtpemail3", new IndexedFieldURI("contacts:EmailAddress", "EmailAddress3", "Contact", "EmailAddresses")); FIELD_MAP.put("facsimiletelephonenumber", new ExtendedFieldURI(0x3A24, ExtendedFieldURI.PropertyType.String)); FIELD_MAP.put("givenName", new ExtendedFieldURI(0x3A06, ExtendedFieldURI.PropertyType.String)); diff --git a/src/java/davmail/exchange/ews/IndexedFieldURI.java b/src/java/davmail/exchange/ews/IndexedFieldURI.java index 4dbc2860..b51efa87 100644 --- a/src/java/davmail/exchange/ews/IndexedFieldURI.java +++ b/src/java/davmail/exchange/ews/IndexedFieldURI.java @@ -26,6 +26,8 @@ import davmail.util.StringUtil; public class IndexedFieldURI implements FieldURI { protected final String fieldURI; protected final String fieldIndex; + protected final String fieldItemType; + protected final String collectionName; /** * Create indexed field uri. @@ -33,9 +35,11 @@ public class IndexedFieldURI implements FieldURI { * @param fieldURI base field uri * @param fieldIndex field name */ - public IndexedFieldURI(String fieldURI, String fieldIndex) { + public IndexedFieldURI(String fieldURI, String fieldIndex, String fieldItemType, String collectionName) { this.fieldURI = fieldURI; this.fieldIndex = fieldIndex; + this.fieldItemType = fieldItemType; + this.collectionName = collectionName; } public void appendTo(StringBuilder buffer) { @@ -45,9 +49,19 @@ public class IndexedFieldURI implements FieldURI { } public void appendValue(StringBuilder buffer, String itemType, String value) { + if (itemType != null) { + // append IndexedFieldURI + appendTo(buffer); + buffer.append("'); + buffer.append("'); + } buffer.append(""); buffer.append(StringUtil.xmlEncode(value)); buffer.append(""); + if (itemType != null) { + buffer.append("'); + buffer.append("'); + } } public String getResponseName() {