Получение сведений о конфигурации службы с помощью EWS в Exchange
Узнайте, как получить сведения о конфигурации службы для единой системы обмена сообщениями, подсказки политики, советы по почте и правила защиты из EWS в Exchange.
Работает ли приложение EWS с единой системой обмена сообщениями, подсказками политики, подсказками по почте или правилами защиты? В этом случае приложению потребуется вызвать операцию GetServiceConfiguration , чтобы получить необходимые сведения о конфигурации службы. Операция GetServiceConfiguration возвращает сведения о конфигурации, характерные для каждой из этих функций EWS.
Примечание.
Управляемый API EWS не реализует эту функцию.
Таблица 1. Сведения о конфигурации, возвращаемые операцией GetServiceConfiguration
Функция EWS | Операция GetServiceConfiguration возвращает... |
---|---|
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-код ответа, чтобы его можно было проанализировать. Затем в зависимости от сценария можно выполнить одно из следующих действий:
Используйте операцию GetMailTips , чтобы получить подсказки по почте для клиентских приложений, которые будут отображаться пользователям.
Если UM включена, узнайте, как воспроизводить элементы почтового ящика по телефону.