Exchange で EWS を使用して、サービス構成情報を取得する

Exchange の EWS から UM、ポリシー微調整、メールのヒント、保護ルールのサービス構成情報を取得する方法を紹介します。

EWS アプリケーションが、ユニファイド メッセージング (UM)、ポリシー微調整、メールのヒント、保護ルールと連携している場合、 アプリケーションは GetServiceConfiguration 操作を呼び出して、必要なサービス構成情報を取得する必要があります。 GetServiceConfiguration 操作では、EWS のこれらの機能のそれぞれに固有の構成情報が返されます。

注:

EWS マネージ API はこの機能を実装していません。

表 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 を読み込み、それを解析できるようにします。 またシナリオに応じて、次のいずれかの操作を行います。

関連項目