Исключение при попытке получить электронную почту, содержащую специальные символы, используя 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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