我知道这个问题已经被问过了,但我有一个具体的问题,我还没有找到答案。我正在尝试打开另一个用户的共享日历,但他/她的日历不是他们的默认日历。
我尝试过以下几种方法:
var ns = Globals.ThisAddIn.Application.Session;
var recip = ns.CreateRecipient("me@me.com");
if (recip.Resolve())
{
var sharedCal = ns.GetSharedDefaultFolder(recip, Outlook.OlDefaultFolders.olFolderCalendar);
}这是行不通的。
我可以通过执行以下操作来查看共享日历
private void GetCalendars()
{
Outlook.CalendarModule calModule = (Outlook.CalendarModule)this.Application.ActiveExplorer().NavigationPane.Modules.GetNavigationModule(Outlook.OlNavigationModuleType.olModuleCalendar);
foreach (Outlook.NavigationGroup group in calModule.NavigationGroups)
{
Debug.WriteLine("Calandar Folders Group >>>>" + group.Name);
foreach (Outlook.NavigationFolder folder in group.NavigationFolders)
{
Debug.WriteLine("Calandar Folders: >>>>" + folder.DisplayName);
}
}
}我只是不知道如何打开日历,一旦我有了名字。无法使用上述步骤获取ID
在outlook中,日历存在于“共享日历”导航树中。
我正在寻找一种方法来获得共享日历的名称,然后让用户选择共享日历(例如,从下拉框中),然后打开该日历。
我已经找到了如何做其他事情的代码,但不是特别的!
有人能给我指个方向吗??
谢谢!!
发布于 2015-10-01 23:07:06
不能使用Outlook对象模型访问该文件夹。
对于缓存的Exchange邮箱,文件夹缓存在主邮箱的OST文件中。在扩展的MAPI级别(C++或Delphi),文件夹存储在最终用户可见的IPM树之外。您可以在OutlookSpy中查看数据-单击IMsgStore |打开根文件夹| GetHierarchyTable |双击“共享数据”文件夹| GetHierarchyTable | etc。
您可以使用Redemption (从RDOStore.RootFolder开始)打开该文件夹。您还可以使用RDOSession.GetSharedMailbox打开其他用户的联机邮箱,然后导航到以RDOStore.IPMRootFolder开头的相关文件夹(返回该邮箱中该用户可见的顶级文件夹)。
https://stackoverflow.com/questions/32889916
复制相似问题