How to: Get service configuration information by using EWS in Exchange
Find out how to get service configuration information for UM, policy nudges, mail tips, and protection rules from EWS in Exchange.
Last modified: March 09, 2015
Applies to: Exchange Online | Exchange Server 2013 | Office 365
In this article
Code example: Get service configuration information for mail tips by using EWS
Next steps
Additional resources
Does your EWS application work with Unified Messaging (UM), policy nudges, mail tips, or protection rules? If so, your application will need to call the GetServiceConfiguration operation to get the service configuration information that it needs. The GetServiceConfiguration operation returns configuration information that is specific to each of these EWS features.
Note
|
|---|
|
The EWS Managed API does not implement this functionality. |
|
EWS feature |
GetServiceConfiguration operation returns… |
|---|---|
|
UM |
|
|
Policy nudges |
|
|
Mail tips |
|
|
Protection rules |
|
The following code example uses the GetServiceConfiguration operation to request service configuration information for mail tips. You can request additional service configuration information by adding more ConfigurationName elements with different values.
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); } }
After you request service configuration information, use the XmlDocument class to load the response XML so that you can parse it. Then, depending on your scenario, you can do one of the following:
-
Use the GetMailTips operation to get mail tips for client applications to display to users.
-
If UM is enabled, learn about how to play mailbox items over your phone.
Note