Мне нужно получать письма с помощью EWS в C # - PullRequest
2 голосов
/ 16 мая 2011

Вот мой код:

using System;
using System.Net;
using MailListClient.MailListServiceReference;
using Microsoft.Exchange.WebServices.Autodiscover;
using Microsoft.Exchange.WebServices.Data;

namespace MailListClient
{
   class Program
   {
       static void Main(string[] args)
       {
           var service = GetBinding();

           ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

           try
           {
               FindItemsResults<Item> findResults = service.FindItems(
                   WellKnownFolderName.Inbox,
                   new ItemView(10));

               foreach (Item item in findResults.Items)
                   Console.WriteLine(item.Id);
           }
           catch (Exception ex)
           {
               Console.WriteLine("Error: " + ex.Message);
               Console.ReadLine();
           }
       }

       static ExchangeService GetBinding()
       {
           ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
           service.Credentials = new WebCredentials("zxzxzxzxzx@email.com", "password");
           try
           {
               service.Url = new Uri("https://email.com/AutoDiscover/AutoDiscover.xml");
           }
           catch (AutodiscoverRemoteException ex)
           {
               Console.WriteLine("Exception thrown: " + ex.Error.Message);
           }
           return service;
       }
   }
}

Но я получаю исключение: Запрос не выполнен.Удаленный сервер возвратил ошибку: (404) Not Found. В чем проблема?

Ответы [ 3 ]

3 голосов
/ 16 мая 2011

Ваш URL может быть неправильным. Вот формат URL, который я использую в коде, который определенно работает в нескольких приложениях (2007 и 2010):

https://[fully qualified domain name]/EWS/Exchange.asmx

Остальная часть вашего кода выглядит правильно на поверхностном уровне.

3 голосов
/ 16 мая 2011

Поскольку запрашиваемый файл не существует. Я знаю, это звучит чисто антагонистично, но это самый простой ответ.

При необходимости выполните эту процедуру:

  1. Выйди из Fiddler2 и проследи запрос. Идет ли он туда, куда, как ты думаешь, должен идти?
  2. Убедитесь, что вы не написали ничего плохого.
  3. Обратитесь к документации, которую предоставила вам ваша ИТ-поддержка
  4. Перейдите к вашему IT с URL и спросите, почему он не работает.
0 голосов
/ 18 июня 2019

Для EWS это вызвано псевдонимом, используемым для переопределения заголовков SMTP.

Проверьте свойства почты адреса для его адреса SMTP и любых псевдонимов, у псевдонима будет приоритет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...