#java #exchangewebservices
#java #exchangewebservices
Вопрос:
Я хочу переместить электронное письмо из папки в папку B. Программа должна принимать такие параметры, как идентификатор исходной папки, имя папки и уникальный идентификатор электронной почты, аналогично для папки назначения.
Примечание — Иногда папка может содержать вложенные папки внутри, программа должна перейти к указанному имени папки и идентификатору папки и переместить электронное письмо в соответствующее место.
Я переместил полные письма из одной папки в другую, но не смог сделать это для отдельных писем.
if (folder.getDisplayName().equals("Inbox")) {
FolderId fid = folder.getId();
System.out.println("Folder Id - " fid);
for(Item item : findResult.getItems()){
System.out.println("item - " item.getId());
item.load();
item.move(fid);
}
}
Комментарии:
1. Предполагая, что опубликованный вами код показывает, как вы перемещаете все электронные письма (элементы?) в папке
fid
, в чем проблема с выполнением этого только для одного элемента? Кроме того, что произойдетfolder.getDisplayName().equals("Inbox")
, если язык будет изменен на что-то другое, кроме английского? Я бы предположил, что отображаемое имя зависит от локали, не так ли?2. есть ли какой-либо прямой поиск элемента в папке, выберите этот элемент и переместите в папку назначения. Я думаю, что каждый раз, когда я просматриваю полную папку для одного элемента, это будет утомительный процесс
3. Ну, как правило, вы должны сначала заставить его работать, а затем заставить его работать быстро. Если вы знаете, казалось бы, утомительный способ (с точки зрения производительности), используйте его в первую очередь. Возможно, вы обнаружите, что проблема с производительностью не так велика, как вы думаете, и даже если она есть, вы, вероятно, узнали бы несколько вещей, которые облегчат поиск или разработку улучшений.
Ответ №1:
Как вы уже сказали,
Иногда папка может содержать вложенные папки внутри, программа должна перейти к указанному имени папки и идентификатору папки и переместить электронное письмо в соответствующее место
Выполнение вашей цели зависит от findResult.getItems()
, который здесь не показан. Возможно, вы захотите проверить рекурсивность в отношении того, чего вы пытаетесь достичь.
Как вы уже сказали, перемещение прошло успешно для всех электронных писем, но возникли проблемы с отдельными электронными письмами, это указывает на детали реализации GetItems().
Комментарии:
1. Привет, Пранай, не могли бы вы, пожалуйста, предоставить мне полный метод, который выполняет требуемую операцию
2. @Karthiktn поскольку вы должны иметь возможность поддерживать этот код в будущем и, вероятно, кое-чему научиться, предоставление вам всего кода не имело бы смысла (и в любом случае мы не являемся сервисом gimme-teh-codez). Мы здесь, чтобы дать советы и объяснения, но вы все равно должны приложить некоторые усилия к решению самостоятельно.