deo*_*oll 7 email calendar ews-managed-api exchange-server-2010
我有以下代码:
var startProp = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Meeting, "DTSTART", MapiPropertyType.String);
var endProp = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Meeting, "DTEND", MapiPropertyType.String);
var cond1 = new SearchFilter.IsEqualTo(startProp, StartDate);
var cond2 = new SearchFilter.IsEqualTo(endProp, EndDate);
var filter = new SearchFilter.SearchFilterCollection(LogicalOperator.And, cond1, cond2);
var items = svc.FindItems(WellKnownFolderName.Calendar, filter, view);
Run Code Online (Sandbox Code Playgroud)
我试图在交换室邮箱上运行此查询.(然而,这在上面的代码中并不明显).它可能具有确切的开始/结束时间的预留.因此,如果有一个预订符合该标准,我应该至少获得一个项目.
背景是:想到会议室,人们试图阻止会议.在交换时,这只是另一个邮箱,类似于用户邮箱.因此,在成功预订时,此邮箱会收到一封包含日历详细信息的电子邮件(iCalendar格式(*.ics).
我被困在两个不同的方面......
items不要在上面的代码中返回任何内容.这TotalCount是零.也许我在api做错了.我无法想象这一点.
我实际上对我要查询的内容感到困惑.我不明白交易所在这件事上的决议.这将在下面进一步描述.
所以你在房间邮箱中发送电子邮件.每封电子邮件都嵌入了日历,通常带有一些base64编码.日历有一个特定的模式 - 我们只对您在VEVENTS之间找到的数据感兴趣(即BEGIN:VEVENT和END:VEVENT).这里的问题是有时会有多个VEVENTS.那么交换真的如何呢?它是否贯穿所有VEVENTS,符合标准; 如果它成功匹配,它是否返回"电子邮件"(附加/嵌入日历)?或者是其他一些机制?
因此,我不确定我在上面的代码中写的语义.所以请就此提出建议.
找到第一部分的答案:
static void Find(DateTime Start, DateTime End, ExchangeService svc)
{
var filter1 = new SearchFilter.IsGreaterThanOrEqualTo(MeetingRequestSchema.Start, Start);
var filter2 = new SearchFilter.IsLessThanOrEqualTo(MeetingRequestSchema.End, End);
var filter = new SearchFilter.SearchFilterCollection(LogicalOperator.And, filter1, filter2);
var vw = new ItemView(99);
var items = svc.FindItems(WellKnownFolderName.Calendar, filter, vw);
Console.WriteLine("Count: {0}", items.TotalCount);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |