【问题标题】:Get list of all rooms in outlook获取outlook中所有房间的列表
【发布时间】:2013-01-28 23:56:56
【问题描述】:

我正在编写一些应用程序,我需要在我的组织内获取所有可用房间。 (我们在 Outlook 中打开“添加房间”对话框时获得的相同列表) 我假设当我们通过 Outlook 执行此操作时,他针对某些交换服务器工作,问题是有没有办法使用 Outlook 作为我与交换服务器之间的“代理”?

我对exchange一窍不通,对outlook的interop有点了解……

提前感谢您的帮助。

【问题讨论】:

  • 使用 EWS 托管 API,这是正确的方法,而且比找到解决方法更容易;-) Getting a room by using the EWS Managed API
  • 已经看到了,但问题是如何创建服务?我在网上看到了一些例子,但没有一个对我有用......
  • 由于某种原因 GetRoomList 返回一个空集合...

标签: c# vba outlook exchange-server mapi


【解决方案1】:

我不知道这是否适合您,但是查看带有OutlookSpy 的“所有房间”容器,PR_CONTAINER_FLAGS 属性包含一个未记录的位 0x200。我没有看到为任何其他容器设置了相同的位。 以下内容对您有用吗?

PR_CONTAINER_FLAGS = "http://schemas.microsoft.com/mapi/proptag/0x36000003"
set rooms = Nothing
set lists = Application.Session.AddressLists
for each list in lists
  containerFlags = list.PropertyAccessor.GetProperty(PR_CONTAINER_FLAGS)
  if (containerFlags And &H0200) <> 0 Then
    set rooms = list
    Exit For
  End If
next
if (rooms Is Nothing) Then
  MsgBox "Room container not found"
Else
  MsgBox "Room container was found, its name is " & rooms.Name
  for each room in rooms.AddressEntries
     Debug.Print room.Name & " - " & room.Address
   next
End If

【讨论】:

  • 好的,我已经在 Outlook spy 中尝试了此代码,并确认已找到房间容器及其名称,但接下来呢?谢谢
  • 现在你有了自己的房间容器。你接下来做什么?
  • 我想从交换服务器(房间列表)中提取数据
  • 那么您需要做的就是遍历 AddressList.AddressEntries 集合 - 请参阅上面的更新代码。
  • 不幸的是,这个对我没有帮助,我需要一些可以与我的 .Net 应用程序集成的东西我尝试使用 EWS 托管 API,但自动发现方法无法运行......我'我从交换服务器收到错误...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 2015-07-14
  • 2016-12-04
  • 1970-01-01
相关资源
最近更新 更多