Поделиться через


Получение сведений о конфигурации службы с помощью EWS в Exchange

Узнайте, как получить сведения о конфигурации службы для единой системы обмена сообщениями, подсказки политики, советы по почте и правила защиты из EWS в Exchange.

Работает ли приложение EWS с единой системой обмена сообщениями, подсказками политики, подсказками по почте или правилами защиты? В этом случае приложению потребуется вызвать операцию GetServiceConfiguration , чтобы получить необходимые сведения о конфигурации службы. Операция GetServiceConfiguration возвращает сведения о конфигурации, характерные для каждой из этих функций EWS.

Примечание.

Управляемый API EWS не реализует эту функцию.

Таблица 1. Сведения о конфигурации, возвращаемые операцией GetServiceConfiguration

Функция EWS Операция GetServiceConfiguration возвращает...
UM
  • Значение типа , указывающее, включена ли UM.
  • Значение типа , указывающее, включена ли воспроизведение на телефоне.
  • Строка набора номера для воспроизведения на телефоне.
Подталкивает политики
  • Политика подталкивает для отображения в клиенте.
Советы по использованию электронной почты
  • Значение типа , указывающее, включены ли подсказки по почте.
  • Максимальное число получателей на запрос.
  • Максимальный размер сообщения.
  • Пороговое значение большой аудитории.
  • Значение типа , указывающее, отображается ли число внешних получателей.
  • Список внутренних доменов.
  • Значение типа , указывающее, включены ли подсказки политики.
  • Пороговое значение ограничения большой аудитории, указывающее, считается ли сообщение большим числом получателей.
Правила защиты
  • Настройка правил защиты для клиента.
  • Список доменов, которые являются внутренними для вашей организации.

Пример кода: получение сведений о конфигурации службы для подсказок по почте с помощью EWS

В следующем примере кода используется операция GetServiceConfiguration для запроса сведений о конфигурации службы для получения подсказок по почте. Вы можете запросить дополнительные сведения о конфигурации службы, добавив дополнительные элементы ConfigurationName с разными значениями.

private static void GetServiceConfiguration(ExchangeService service, NetworkCredential creds)
{ 
  // XML for the GetServiceConfiguration request SOAP envelope for mail tips configuration information.
  const string getServiceConfigurationRequest = 
    "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
    "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
    "               xmlns:m=\"http://schemas.microsoft.com/exchange/services/2006/messages\"\n" +
    "               xmlns:t=\"http://schemas.microsoft.com/exchange/services/2006/types\" \n" +
    "               xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"\n" +
    "               xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n" +
    "  <soap:Header>\n" +
    "    <t:RequestServerVersion Version=\"Exchange2013\" />\n" +
    "  </soap:Header>\n" +
    "  <soap:Body>\n" +
    "    <m:GetServiceConfiguration>\n" +
    "      <m:ActingAs>\n" +
    "        <t:EmailAddress>user1@contoso.com</t:EmailAddress>\n" +
    "        <t:RoutingType>SMTP</t:RoutingType>\n" +
    "      </m:ActingAs>\n" +
    "      <m:RequestedConfiguration>\n" +
    "        <m:ConfigurationName>MailTips</m:ConfigurationName>\n" +
    "      </m:RequestedConfiguration>\n" +
    "    </m:GetServiceConfiguration>\n" +
    "  </soap:Body>\n" +
    "</soap:Envelope>";
  // Encoded GetServiceConfiguration operation request.
  byte[] payload = System.Text.Encoding.UTF8.GetBytes(getServiceConfigurationRequest);
  try
  {
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(service.Url);
    request.AllowAutoRedirect = false;
    request.Credentials = creds;
    request.Method = "POST";
    request.ContentType = "text/xml";
    Stream requestStream = request.GetRequestStream();
    requestStream.Write(payload, 0, payload.Length);
    requestStream.Close();
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    if (response.StatusCode == HttpStatusCode.OK)
    {
      Stream responseStream = response.GetResponseStream();
      StreamReader reader = new StreamReader(responseStream);
      string responseFromServer = reader.ReadToEnd();
      Console.WriteLine("You will need to parse this response to get the configuration information:\n\n" + responseFromServer);
      reader.Close();
      responseStream.Close();
    }
    else
      throw new WebException(response.StatusDescription);
          
  }
  catch (WebException e)
  {
    Console.WriteLine(e.Message);
  }
}

Дальнейшие действия

После запроса сведений о конфигурации службы используйте класс XmlDocument , чтобы загрузить XML-код ответа, чтобы его можно было проанализировать. Затем в зависимости от сценария можно выполнить одно из следующих действий:

См. также