在Exchange 2013中,我使用EmailMessage对象生成了一封电子邮件。我将此消息保存在草稿文件夹中,并从save方法中获取ID。然后,通过绑定从草稿文件夹加载电子邮件消息,并从使用"WebClientReadFormQueryString“属性创建的电子邮件的URL中添加一个URL。然后,我可以引导用户到OWA弹出与此电子邮件加载。
现在我们迁移到Exchange 2016,弹出窗口没有加载。生成的电子邮件可以在草稿文件夹中看到。我希望它能自动显示OWA弹出与草稿电子邮件加载。(行为与Exchange 2013相同)。
提前谢谢。
发布于 2019-03-28 11:41:44
请参阅Microsoft官方文档中关于WebClientReadFormQueryString的版本差异部分。
从主要版本15开始,以Exchange 2013 build 15.0.775.38 (CU3)和Exchange版本15.00.0775.009结尾的Exchange版本不会在WebClientReadFormQueryString元素中返回正确的查询字符串片段。 在Exchange的主要版本15之前的版本中,Outlook的项标识符是Outlook标识符。如果您针对的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);
}https://stackoverflow.com/questions/55266550
复制相似问题