Exchange 2013 на Exchange 2016 - PullRequest
       72

Exchange 2013 на Exchange 2016

0 голосов
/ 20 марта 2019

В Exchange 2013 я сгенерировал электронное письмо, используя объект EmailMessage.Я сохраняю это сообщение в папке «Черновики» и получаю идентификатор из метода сохранения.Затем я загружаю сообщение электронной почты из папки «Черновики» путем привязки, а из сообщения я составляю URL-адрес для электронного письма, созданного с использованием свойства «WebClientReadFormQueryString».Затем я могу направить пользователя во всплывающее окно OWA с этим загруженным письмом.

Теперь, когда мы перешли на Exchange 2016, всплывающее окно не загружается.Сгенерированное письмо можно увидеть в папке черновиков.Я хочу, чтобы он автоматически отображал всплывающее окно OWA с загруженным черновиком электронной почты.(аналогично Exchange 2013).

Заранее спасибо.

1 Ответ

0 голосов
/ 28 марта 2019

См. Раздел Различия версий официальной документации Microsoft по WebClientReadFormQueryString

Версии Exchange, начиная с основной версии 15 и заканчивая Exchange Server 2013build 15.0.775.38 (CU3) и версия Exchange Online 15.00.0775.009 не возвращают правильный фрагмент строки запроса в элементе WebClientReadFormQueryString.

В версиях Exchange, предшествующих основной версии 15, идентификатор элемента для Outlook WebURL-адреса приложений - это идентификатор Outlook Web App.Если вы ориентируетесь на версию Exchange, более раннюю, чем основная версия 15, вам нужно использовать операцию ConvertId для преобразования идентификатора.

Возможно, вам потребуется сделать что-то подобное в своем коде:

    // Versions of Exchange starting with major version 15 and ending with Exchange Server 2013 build 15.0.775.09
    // returned a different query string fragment. This optional check is not required for applications that
    // target Exchange Online.
    if ((serverInfo.MajorVersion == 15) && (serverInfo.MajorBuildNumber < 775) &&(serverInfo.MinorBuildNumber < 09))
    {
      // If your client is connected to an Exchange 2013 server that has not been updated to CU3,
      // this query string will be returned.
      owaReadFormQueryString = string.Format("#viewmodel=_y.$Ep&ItemID={0}",
        System.Web.HttpUtility.UrlEncode(ewsIdentifer, Encoding.UTF8));
    }
    else
    {
      // If your client is connected to an Exchanger 2010, Exchange 2013 CU3, or Exchange Online server,
      // the WebClientReadFormQueryString is used.
      owaReadFormQueryString = msg.WebClientReadFormQueryString;
    }

    // Create the URL that Outlook Web App uses to open the email message.
    Uri url = service.Url;
    string owaReadAccessUrl = string.Format("{0}://{1}/owa/{2}",
      url.Scheme, url.Host, owaReadFormQueryString);

    if (!string.IsNullOrEmpty(owaReadAccessUrl))
    {
      System.Diagnostics.Process.Start("IEXPLORE.EXE", owaReadAccessUrl);
    }
...