Попытка найти уникальный идентификатор папки в EWS C # API - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь найти уникальный идентификатор папки в Outlook.

По какой-то причине я получаю сообщение об ошибке с помощью метода AutoDiscoverUrl, но не знаю почему.Перепробовал все возможные решения в StackOverflow.

Попытка запустить его в программе командной строки с использованием C # и прокомментировал / задокументировал код.Я использовал другой пример, как это сделать, но он не работает.

 static void Main(string[] args)
    {

        // Set server binding

        ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
        service.UseDefaultCredentials = true;

        // Set Credentials
        service.Credentials = new WebCredentials("xxxx", "xxxxx", "xxxx");
        service.UseDefaultCredentials = true;

        service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");

        // Set the URL 
        service.AutodiscoverUrl("xxxx", Callback);


        // Error Tracing

        service.TraceEnabled = true;

        // Redirect callback


        // Set View

        FolderView view = new FolderView(100);
        view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
        view.PropertySet.Add(FolderSchema.DisplayName);
        view.Traversal = FolderTraversal.Deep;
        FindFoldersResults findFolderResults = service.FindFolders(WellKnownFolderName.Root, view);

        // Find specific folder

        foreach (Folder f in findFolderResults)
        {

            // Show FolderId of the folder "test"
            if (f.DisplayName == "test")
                Console.WriteLine(f.Id);
        }

    }

    private static bool Callback(string redirectionUrl)
    {

        bool result = false;

        var redirectionUri = new Uri(redirectionUrl);

        if (redirectionUri.Scheme == "https")

            result = true;
        return result;

    }

}

1 Ответ

0 голосов
/ 28 декабря 2018

Вы можете найти уникальный идентификатор папки, используя следующий код:

   ExchangeService Service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
    Service.UseDefaultCredentials = false;
    Service.Credentials = new WebCredentials("yourUserID", "yourPassword");

    Mailbox ProdSupportMailbox = new Mailbox("ProdSupport@company.com");
    Service.AutodiscoverUrl("ProdSupport@company.com");

    FolderView view = new FolderView(100);
            view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
            view.PropertySet.Add(FolderSchema.DisplayName);
            view.Traversal = FolderTraversal.Deep;
            FindFoldersResults findFolderResults = server.FindFolders(WellKnownFolderName.Root, view);
            //find specific folder
            foreach(Folder f in findFolderResults)
            {
                //show folderId of the folder "test"
                if (f.DisplayName == "Test")
                    Console.WriteLine(f.Id);
            }

Для получения дополнительной информации, пожалуйста, обратитесь по следующим ссылкам:

Идентификатор папки веб-службы Exchange для необщеизвестное имя папки

Веб-службы Microsoft Exchange, читающие мои локальные папки Outlook, ВМЕСТО другого адреса

...