我目前正在开发一个项目,该系统是node.js网络服务器订阅的推送通知,用于更改Exchange服务器的资源日历。我们按照MSDN文档使用SOAP请求订阅并与Exchange服务器通信。
我们使用下面的SOAP请求来获取更改并将它们存储在Web服务器的本地数据库中。 '+ roomCalId'和'+ syncState +'值被替换为房间日历Id及其对应的同步状态,这些状态在订阅时先前存储在数据库中。
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Header>
<t:RequestServerVersion Version="Exchange2013"></t:RequestServerVersion>
<t:TimeZoneContext>
<t:TimeZoneDefinition Name="UTC" Id="UTC"></t:TimeZoneDefinition>
</t:TimeZoneContext>
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:PrimarySmtpAddress>+roomCalId+</t:PrimarySmtpAddress>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
<soap:Body>
<m:SyncFolderItems>
<m:ItemShape>
<t:BaseShape>AllProperties</t:BaseShape>
</m:ItemShape>
<m:SyncFolderId>
<t:DistinguishedFolderId Id="calendar" />
</m:SyncFolderId>
<m:SyncState>+syncState+</m:SyncState>
<m:MaxChangesReturned>500</m:MaxChangesReturned>
<m:SyncScope>NormalItems</m:SyncScope>
</m:SyncFolderItems>
</soap:Body>
</soap:Envelope>
这个过程完美无缺,前几个日历没有任何问题。但是,对于新创建的房间日历,上面的soap请求会将组织者的名称作为约会标题而不是实际标题返回。是否有可能发生这种情况的原因?
答案 0 :(得分:0)
这是房间邮箱的默认设置,其中管理器名称用于替换会议主题。出于安全原因这样做是因为大多数人都可以访问会议室,但通常像人力资源这样的人可能不希望人们看到会议的主题(例如,会议谈论缩小规模等)。您可以使用Set-CalendarProcessing cmdlet https://technet.microsoft.com/en-us/library/dd335046(v=exchg.160).aspx和AddOrganizerToSubject参数
更改此设置