2017-06-15 88 views
0

我使用下面的代碼約會導出爲的.ics文件預約通過EWS拉不具有MIME內容與會者

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,參加者信息是存在的。

輸出示例:

從Outlook '另存爲':https://gist.github.com/rhamache/932365fab68af947686f7e7b45bb84bf

從EWS導出的文件:https://gist.github.com/rhamache/61509c718da6f8072c0694958eb8ac70

正如你可以看到,從EWS產生的.ics文件丟失的與會者,並X-ALT-DESC (可能還有其他的東西也沒有)

我可以訪問Aspose,如果它簡化了事情

+0

你能與Aspose.Email的IEWSClient API嘗試一下,看看它是否有助於你? –

+0

@KashifIqbal我不能驗證使用帶有aspose的EWS,請參閱https://stackoverflow.com/questions/44633386/getewsclient-with-oauth-token-from-office-js – ryan

回答

2

這是正常的,並在EWS可以預期看到https://msdn.microsoft.com/en-us/library/office/dn672316(v=exchg.150).aspx

任用MIME流是將iCal(.ICS)文件。 .ics格式很方便,因爲Outlook和其他電子郵件客戶端可以識別它。這對於導出會議不是一個可行的選項,因爲參與者信息不是在MIME流中提供的。附件和其他屬性可能不包含在MIME流中。考慮從Appointment對象或GetItem操作返回的XML構造iCal格式。通過這種方式,你可以捕捉更多與擴展屬性(「X-」屬性)中的iCal文件中的交易屬性。您還可以導出XML形式預約。調用getItem操作,然後保存XML在你的系統,你可以還可以使用跟蹤功能的EWS託管API中捕捉到XML把在一個XML databas