当前位置: 首页 > 知识库问答 >
问题:

在Exchange(EWS)中找不到文件夹:“邮箱不存在”

景书
2023-03-14

我正在使用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);

    ...
}
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)

共有1个答案

柳均
2023-03-14

我找到了解决办法--但不确定为什么最初的代码不起作用。

浏览folder.bind对我起到了很好的作用,它起到了作用:

private FolderId findSpecificFolder(ExchangeService service, String folderName) throws Exception {

    //reusing the Inbox FolderId that was working
    FolderId inbox=new FolderId(WellKnownFolderName.Inbox, new Mailbox(account));

    FolderView view = new FolderView(10);
    PropertySet prop= new PropertySet(BasePropertySet.IdOnly);
    prop.add(FolderSchema.DisplayName);

    view.setPropertySet(prop);
    view.setTraversal(FolderTraversal.Deep);

    //Binding the inboxFolder
    Folder inboxFolder=Folder.bind(service, inbox);

    FindFoldersResults subFolders=inboxFolder.findFolders(view);

    for (Folder subFolder : subFolders.getFolders()){
       ...
    } 
}
 类似资料:
  • 我可以使用以下powershell命令检索存储在特定公用文件夹邮箱中的公用文件夹: (但我不想使用远程PowerShell) 我不能使用EWS来完成这件事。 我的第一个想法是获取所有公用文件夹,然后根据公用文件夹邮箱对它们进行排序。 但可能没有包含公用文件夹邮箱名称(类似于ContentMailboxName powershell属性)的扩展MAPI属性。 所以我尝试了这样的方法:具有委托访问权限

  • 我目前正在iOS下开发一个EWS客户端应用程序,因此我使用Exchange Web服务与Exchange2010服务器通信(纯XML而不是托管API)。我知道如何访问委托的邮箱和日历,并授予或删除委托对邮箱的访问权限,但在访问之前,我需要先找到这些邮箱。也就是说,我想要找到我的当前用户有权访问的所有邮箱(与所有有权访问当前邮箱的用户相反,当前邮箱是有详细文档记录的)。 这个来自2011年的问题(E

  • 我正在尝试使用ews soap请求获取exchange online用户邮箱中的文件夹,并制作一个基于路径->id的字典。 现在它给我的文件夹在根和父ID。那么我将使用folderId而不是t:distinguishedFolderId再次获取。所以我可以直接检查一个文件夹是否存在于一个特定的父文件夹中吗,所以我只会创建一个不存在的文件夹,如果它存在,我将使用返回的folderId作为Create

  • 我能够创建一个进程邮箱,并且能够通过https://ExchangeServer/owa/processmailbox@domain.com访问,然后我将提供我的凭据,并且能够登录。 但我无法通过EWS访问。它说SMTP地址没有与之关联的邮箱。 我可以用相同的代码访问我的收件箱。

  • 这是颤动医生的结果 : 医生摘要(要查看所有详细信息,请运行flutch Doctor-v):[√] Flutter(Channel stable,v1.12.13 hotfix.9,on Microsoft Windows[Version 10.0.15063],locale en US)[X]Android toolchain-为Android设备开发X Android_HOME=C:\Use

  • 我找不到任何使用SOAP API正确列出所有公用文件夹邮箱和公用文件夹的解决方案。我只找到了powershell命令或C#方法。如果有人知道如何获取/列出所有公用文件夹,请提供给我的解决方案。