Исключение при попытке получить электронную почту, содержащую специальные символы, используя EWS из приложения JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Исключение при попытке получить электронную почту, содержащую специальные символы, используя EWS из приложения Java

Сообщение Anonymous »

Мы внедрили автоматическое приложение процессора, которое потребляет и обрабатывает входящие почты из почтового ящика на сервере Exchange (VER 2016). Для получения и обработки электронных писем мы используем интерфейс EWS и библиотеку EWS Java (VER 2.0) в нашем приложении Java (работая на Java 17). Недавно мы сталкиваемся с проблемой, когда мы получили электронные письма, содержащие специальные символы, такие как SOH (ASCII 01) , STX (ASCII 02) , что приводит к следующему исключению:

microsoft.exchange.webservices.data.corexceprecevicesprecese. Свойство было запрошено, но его не возвращали сервер. microsoft.exchange.webservices.data.core.propertybag.getObjectFromPropertyDefinition (Propertybag.java:760)

at microsoft.exchange.webservices.data.core.service.item.item.getDateTeTimerevive (item.java: jervice.item.item.getDateTeTeMereceived (item.jav. /> < /blockquote>
Когда мы вручную заменяют только эти специальные символы и отправляем электронное письмо в почтовый ящик, затем обработка электронной почты работает нормально. < /p>
Наш код выглядит следующим образом: < /p>
itemPropertySet = new PropertySet(BasePropertySet.FirstClassProperties);
itemPropertySet.setRequestedBodyType(BodyType.Text);

...

Folder folder = findFolder(queueId);
ItemView view = new ItemView (MESSAGE_VIEW_SIZE);
view.setPropertySet(itemPropertySet);
view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Ascending);
FindItemsResults findResults = service.findItems(folder.getId(), view);
messageIterator = findResults.getItems().iterator();

...

while (messageIterator.hasNext()) {
Item item = messageIterator.next();
if (item instanceof EmailMessage) {
EmailMessage emailMessage = (EmailMessage)item;

try {
// Load message content
emailMessage.load(itemPropertySet);
String body = emailMessage.getBody().toString();
final String sender = emailMessage.getSender().getAddress();
//Further processing of email body

} catch (Exception e) {
log.error(e.getMessage());
}
}
}
< /code>
Любая помощь будет очень оценена, поскольку мы немного застряли в этом. :-)

Подробнее здесь: https://stackoverflow.com/questions/791 ... sing-ews-f

Вернуться в «JAVA»