通过EWS提取的约会没有mime内容的与会者

时间:2017-06-15 16:48:24

标签: vb.net outlook exchangewebservices aspose

我使用以下代码将约会导出为 .ics 文件

Dim properties = New PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent, AppointmentSchema.RequiredAttendees, AppointmentSchema.OptionalAttendees)
Dim item = Appointment.Bind(_exchangeService, New ItemId(itemId), properties)

Using fileStream = File.OpenWrite("C:\Test\appt.ics")

    fileStream.Write(item.MimeContent.Content, 0, item.MimeContent.Content.Length)

End Using

生成的.ics文件不包含与会者的任何数据。我该如何导出这些数据?

调试时,RequiredAttendees上的item属性会填充数据。

如果我直接从Outlook导出,使用File > Save As,与会者信息就在那里。

示例输出:

从展望'另存为':https://gist.github.com/rhamache/932365fab68af947686f7e7b45bb84bf

从EWS导出的文件:https://gist.github.com/rhamache/61509c718da6f8072c0694958eb8ac70

正如您所看到的,EWS生成的.ics文件缺少与会者,X-ALT-DESC(可能还缺少其他内容)

我可以访问Aspose,如果它简化了事情

1 个答案:

答案 0 :(得分:2)

这是正常的,在EWS中可以预期https://msdn.microsoft.com/en-us/library/office/dn672316(v=exchg.150).aspx

  

Appointment MIME流是一个iCal(.ics)文件。 .ics格式很方便,因为Outlook和其他电子邮件客户端可以识别它。这不是导出会议的可行选项,因为MIME流中未提供与会者信息。附件和其他属性可能不包含在MIME流中。考虑从Appointment对象或GetItem操作返回的XML构建iCal格式。这样,您可以在iCal文件中捕获更多具有扩展属性(“X-”属性)的Exchange属性。您还可以以XML格式导出约会。调用GetItem操作并将XML保存在系统中。您可以还可以使用EWS托管API中的跟踪功能来捕获要放入XML数据库的XML