Microsoft Exchange Java API 根据文件夹中的日期和编号获取邮件
Microsoft Exchange Java API get messages based on date and number in folder
我有这个程序有这个方法。
public List<Message> getMessages(int start, int end, Date earliestDate) throws MessagingException {
使用 Java EWS api 我如何使用这些变量从文件夹中获取消息。例如,如果我想在收件箱中收到第 50-70 条消息,或者我想收到从特定日期开始的第 10-20 条消息。日期可以为空,这并不重要。
我怀疑这是最有效的方法,但是哦,好吧。
public List<Message> getMessages(int start, int end, Date earliestDate) {
if (start < 1 || end < 1 || end < start) {
throw new MessagingException(String.format(Locale.US, "Invalid message set %d %d",
start, end));
}
int length = end - start;
ItemView view = new ItemView(length);
FindItemsResults<Item> findresults = null;
try {
if (earliestDate == null) {
findresults = mService.findItems(mFolder.getId(), view);
}
else{
SearchFilter filter = new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.DateTimeReceived, earliestDate);
findresults = mService.findItems(mFolder.getId(), filter,view);
}
} catch (Exception e) {
e.printStackTrace();
}
List<Message> messages = new ArrayList<Message>();
int i = 0;
for (Item item : findresults) {
ItemId id = null;
EmailMessage message = null;
try {
id = item.getId();
message = new EmailMessage(mService);
message.bind(mService, id);
} catch (ServiceLocalException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
messages.add(message);
}
return messages;
}
我有这个程序有这个方法。
public List<Message> getMessages(int start, int end, Date earliestDate) throws MessagingException {
使用 Java EWS api 我如何使用这些变量从文件夹中获取消息。例如,如果我想在收件箱中收到第 50-70 条消息,或者我想收到从特定日期开始的第 10-20 条消息。日期可以为空,这并不重要。
我怀疑这是最有效的方法,但是哦,好吧。
public List<Message> getMessages(int start, int end, Date earliestDate) {
if (start < 1 || end < 1 || end < start) {
throw new MessagingException(String.format(Locale.US, "Invalid message set %d %d",
start, end));
}
int length = end - start;
ItemView view = new ItemView(length);
FindItemsResults<Item> findresults = null;
try {
if (earliestDate == null) {
findresults = mService.findItems(mFolder.getId(), view);
}
else{
SearchFilter filter = new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.DateTimeReceived, earliestDate);
findresults = mService.findItems(mFolder.getId(), filter,view);
}
} catch (Exception e) {
e.printStackTrace();
}
List<Message> messages = new ArrayList<Message>();
int i = 0;
for (Item item : findresults) {
ItemId id = null;
EmailMessage message = null;
try {
id = item.getId();
message = new EmailMessage(mService);
message.bind(mService, id);
} catch (ServiceLocalException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
messages.add(message);
}
return messages;
}