Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#EWS交换服务找不到所有项目_C#_Email_Outlook_Exchangewebservices - Fatal编程技术网

c#EWS交换服务找不到所有项目

c#EWS交换服务找不到所有项目,c#,email,outlook,exchangewebservices,C#,Email,Outlook,Exchangewebservices,我目前正在制作一个小应用程序来处理共享邮箱 到目前为止一切都很好,我可以收到电子邮件并和他们一起工作,一切都很好 但有一个大问题,在应用程序开始时,我列出了位于共享邮箱收件箱中的所有电子邮件。虽然邮箱中有1000多封电子邮件,但我的应用程序只能找到其中的一部分。我没有应用任何过滤器 这是我的代码: 公共静态列表OpenInbox() { 整数偏移=0; int pagesize=50; FolderId SharedMailbox=新的FolderId(WellKnownFolderName.I

我目前正在制作一个小应用程序来处理共享邮箱

到目前为止一切都很好,我可以收到电子邮件并和他们一起工作,一切都很好

但有一个大问题,在应用程序开始时,我列出了位于共享邮箱收件箱中的所有电子邮件。虽然邮箱中有1000多封电子邮件,但我的应用程序只能找到其中的一部分。我没有应用任何过滤器

这是我的代码:

公共静态列表OpenInbox()
{
整数偏移=0;
int pagesize=50;
FolderId SharedMailbox=新的FolderId(WellKnownFolderName.Inbox,“informatik@XXX");
ItemView ItemView=新的ItemView(页面大小、偏移量、偏移量基点.开始);
FindItemsResults findResults;
列表电子邮件=新列表();
布尔莫尔=真;
而(更多)
{
findResults=service.FindItems(SharedMailbox,itemView);
emails.AddRange(findResults);
more=findResults.MoreAvailable;
如果(更多)
{
itemView.Offset+=页面大小;
}
}
回复邮件;
}
以前我的代码非常简单(最多1000项),但结果是一样的:

public static List<Item> OpenInbox()
{
    FolderId SharedMailbox = new FolderId(WellKnownFolderName.Inbox, "informatik@XXX");
    ItemView itemView = new ItemView(1000);
    FindItemsResults<Item> findResults = service.FindItems(SharedMailbox, itemView);

    return findResults;
}


邮箱是否使用多个pst文件?c#只查看一个pst。据我所知,c#不查看任何.pst文件,而是与服务器通信?但是,我的计算机上只有一个pst文件,我要查找的所有电子邮件都在同一文件夹中:。如果您正在查看互操作,则它将与pst文件交互。打开outlook时会更新pst文件。确保更新收件箱,该收件箱将从outlook server下载所有最新电子邮件。当您实际打开pst文件时,您可能错误地认为您的代码直接连接到服务器。请尝试此链接:如果是这样,我更想知道为什么我可以在outlook中看到邮件而不是我的应用程序,以及为什么ExchangeService在访问本地邮件时可能只能页面1000个项目。Microsoft文档指出,分页是不向服务器请求太多信息的限制。我也不引用链接线程中的任何outlook文件
public static void StartExchangeService()
{
    int counter = 0;
Start:;
    // log in to exchange
    string password = "XXX";
    string mail = "julian.bechtold@XXX.ch";
    service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
    service.Credentials = new WebCredentials(mail, password);
    try
    {
        service.AutodiscoverUrl(mail, RedirectionUrlValidationCallback);
    }
    catch (Microsoft.Exchange.WebServices.Data.AutodiscoverLocalException)
    {
        if (counter > 3) throw;
        else
        {
            Thread.Sleep(10000);
            counter++;
            goto Start;
        }
    }

}