EWS托管API - 使用Html Body和Outlook 2013进行预约

时间:2015-10-30 11:41:46

标签: c# outlook exchangewebservices

我正在尝试使用包含超链接的Html Body创建一个约会,就像在此示例中所示:

ewsAppointment = new EwsData.Appointment(service);
ewsAppointment.Subject = "Test";
var element = new XElement("html",
                    new XElement("body",
                        new XElement("p", 
                            new XElement("a", 
                                new XAttribute("href", "http://www.google.it/"), 
                                "google")), 
                        new XElement("p", "test 2"))));

ewsAppointment.Body.BodyType = EwsData.BodyType.HTML;
ewsAppointment.Body = element.ToString();
ewsAppointment.Save(SendInvitationsMode.SendToNone);

当我在Outlook 2010中打开此约会时,正文按预期显示:

Body in Outlook 2010

但是在Outlook 2013中,Body的格式丢失了,它看起来像这样:

Body in Outlook 2013

知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

MS-OXCAL(section 2.2.1.38)标准文档似乎建议需要以RTF格式指定约会。您可能想尝试使用.NET RTF Writer等库来编写正文。

我认为您获得奇怪更改的原因是因为链中的某些内容正在将您的HTML转换为RTF。 This question有更多细节。

答案 1 :(得分:0)

属性PR_RTF_COMPRESSED是您所需要的。它是MAPI属性,作为EWS托管API中的扩展属性和Exchange Web Services .NET

支持