Я использую ews-java-api , чтобы создать новое сообщение электронной почты с существующим элементом в качестве вложения.Я следовал за ответом Глена на этот вопрос, чтобы написать подобный код в Java.Однако я получаю сообщение об ошибке - «Элементы типа EmailMessage не поддерживаются в качестве вложений»
Вот мой фрагмент кода для справки:
EmailMessage approvalMessage = new EmailMessage(exchangeService);
ItemAttachment itemAttachment = approvalMessage.getAttachments().addItemAttachment(EmailMessage.class);
MimeContent mimeContent = ewsItem.getMimeContent();
Item attachedItem = itemAttachment.getItem();
attachedItem.setMimeContent(mimeContent);
ExtendedPropertyDefinition prFlags = new ExtendedPropertyDefinition(3591, MapiPropertyType.Integer);
attachedItem.setExtendedProperty(prFlags, "1");
itemAttachment.setName(subject);
approvalMessage.setSubject("Reminder Email with original email as attachment");
approvalMessage.getToRecipients().add("my-email-address");
approvalMessage.send();
- Approssessess это новое сообщение электронной почты, которое я создаю
- ewsItem - это существующий элемент, который я хочу добавить в качестве приложения к утверждениюMessage
Вопрос : Это какая-то проблема с ews-java-api, что он не принимает EmailMessage в качестве типа вложения?
Что я пробовал : я заменил ItemAttachment itemAttachment = approvalMessage.getAttachments().addItemAttachment(EmailMessage.class);
на ItemAttachment itemAttachment = approvalMessage.getAttachments().addItemAttachment(Item.class);
Опубликуйте это изменение, я больше не наблюдаю вышеуказанную ошибку.Однако теперь код выдает ошибку stackoverflow в следующей строке - attachedItem.setMimeContent(mimeContent);
Трассировка ошибки стека -
Oct 09, 2018 9:02:45 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [dispatcher] in context with path []
threw exception [Handler dispatch failed; nested exception is
java.lang.StackOverflowError] with root cause
java.lang.StackOverflowError
at microsoft.exchange.webservices.data.core.PropertyBag.changed
(PropertyBag.java:364)
at microsoft.exchange.webservices.data.property.complex.ItemAttachment.
itemChanged(ItemAttachment.java:96)
at microsoft.exchange.webservices.data.property.complex.ItemAttachment.
serviceObjectChanged(ItemAttachment.java:252)
at microsoft.exchange.webservices.data.core.service.ServiceObject.
changed(ServiceObject.java:85)
at microsoft.exchange.webservices.data.core.PropertyBag.changed
(PropertyBag.java:364)
at microsoft.exchange.webservices.data.property.complex.ItemAttachment.
itemChanged(ItemAttachment.java:96)
at microsoft.exchange.webservices.data.property.complex.ItemAttachment.
serviceObjectChanged(ItemAttachment.java:252)
at microsoft.exchange.webservices.data.core.service.ServiceObject.
changed(ServiceObject.java:85)
Вопрос: Почему указывается Item в качестве класса вложенияприводит к ошибке stackoverflow?Как правильно добавить существующий элемент в качестве вложения?