我使用以下代码将约会导出为 .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,如果它简化了事情
答案 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