【发布时间】:2021-06-22 18:02:44
【问题描述】:
我正在使用 EWS 和 java 从 Outlook 邮箱中检索电子邮件。
我可以毫无问题地从收件箱中获取电子邮件:
FolderId inbox=new FolderId(WellKnownFolderName.Inbox, new Mailbox(account));
return service.findItems(inbox, new ItemView(15))
.getItems()
.stream()
.map(item -> toEmail(item))
.collect(toList());
我现在需要查看特定文件夹,我能找到的所有示例看起来都像这样:
private FolderId findSpecificFolder(ExchangeService service, String folderName) throws Exception {
FolderView view = new FolderView(10);
PropertySet prop= new PropertySet(BasePropertySet.IdOnly);
prop.add(FolderSchema.DisplayName);
view.setPropertySet(prop);
view.setTraversal(FolderTraversal.Deep);
FindFoldersResults findFolderResults = service.findFolders(WellKnownFolderName.Root, view);
...
}
但是对service.findFolders 的调用会产生异常:
microsoft.exchange.webservices.data.core.exception.service.remote.ServiceResponseException: Mailbox does not exist.
at microsoft.exchange.webservices.data.core.response.ServiceResponse.internalThrowIfNecessary(ServiceResponse.java:278)
at microsoft.exchange.webservices.data.core.response.ServiceResponse.throwIfNecessary(ServiceResponse.java:267)
at microsoft.exchange.webservices.data.core.request.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:165)
at microsoft.exchange.webservices.data.core.ExchangeService.internalFindFolders(ExchangeService.java:377)
at microsoft.exchange.webservices.data.core.ExchangeService.findFolders(ExchangeService.java:425)
at microsoft.exchange.webservices.data.core.ExchangeService.findFolders(ExchangeService.java:461)
我很困惑,因为当我刚刚获取收件箱内容时它工作得很好。所以邮箱确实存在!
有没有其他可行的方法?
【问题讨论】: