【问题标题】:How can I access the meeting request for a calendar event through Exchange Web Services? (and PHP and SOAP)如何通过 Exchange Web 服务访问日历活动的会议请求? (以及 PHP 和 SOAP)
【发布时间】:2011-07-23 16:06:54
【问题描述】:

有没有办法通过 Exchange Web 服务访问(和修改)MeetingRequests? 特别是通过 PHP 和 SOAP。

当我尝试使用 CreateItem 显式创建 MeetingRequest 时,我收到一条错误消息,指出 MeetingRequest 是 CreateItem 的无效类型,并且在创建具有适当 MessageDispositions 的 CalendarItems 时会自动创建 MeetingRequests。但是,创建 CalendarItem 而不发送它,然后使用 GetItem 检索详细信息并没有产生会议请求(即,它还不存在)。

据我所知,MeetingRequest 是同时创建和发送的,无法在两者之间进行编辑。我希望我错了。我错了吗?

最终,我正在尝试将附件添加到会议请求中。现在我可以向会议添加附件,但不能向请求添加附件(即,当会议在日历中打开时,附件打开正常;当(在收件箱中)收到会议请求时,附件无法打开)。

【问题讨论】:

    标签: php soap exchange-server exchangewebservices


    【解决方案1】:

    是的,这是可能的。

    首先,创建约会:

          <m:CreateItem SendMeetingInvitations="SendToNone">
        <m:SavedItemFolderId>
          <t:DistinguishedFolderId Id="calendar" />
        </m:SavedItemFolderId>
        <m:Items>
          <t:CalendarItem>
            <t:Subject>testsubject</t:Subject>
            <t:Body BodyType="Text">testbody</t:Body>
            <t:Start>2011-07-24T09:36:58+02:00</t:Start>
            <t:End>2011-07-24T10:36:58+02:00</t:End>
          </t:CalendarItem>
        </m:Items>
      </m:CreateItem>
    

    然后,将附件附加到约会中:

          <m:CreateAttachment>
        <m:ParentItemId Id="itemid" />
        <m:Attachments>
          <t:FileAttachment>
            <t:Name>test.pdf</t:Name>
            <t:IsInline>false</t:IsInline>
            <t:IsContactPhoto>false</t:IsContactPhoto>
            <t:Content>base64 encoded content here</t:Content>
          </t:FileAttachment>
        </m:Attachments>
      </m:CreateAttachment>
    

    最后,添加收件人并更新会议。

          <m:UpdateItem ConflictResolution="AutoResolve" SendMeetingInvitationsOrCancellations="SendToAllAndSaveCopy">
        <m:ItemChanges>
          <t:ItemChange>
            <t:ItemId Id="itemid of the original item" ChangeKey="changekey" />
            <t:Updates>
              <t:SetItemField>
                <t:FieldURI FieldURI="calendar:RequiredAttendees" />
                <t:CalendarItem>
                  <t:RequiredAttendees>
                    <t:Attendee>
                      <t:Mailbox>
                        <t:Name>Someone</t:Name>
                        <t:EmailAddress>mailaddress</t:EmailAddress>
                      </t:Mailbox>
                    </t:Attendee>
                  </t:RequiredAttendees>
                </t:CalendarItem>
              </t:SetItemField>
            </t:Updates>
          </t:ItemChange>
        </m:ItemChanges>
      </m:UpdateItem>
    

    这会将附件添加到邀请消息中。

    【讨论】:

    • 感谢您的帮助。不幸的是,这实际上已经是我正在做的事情了。但是,邀请消息实际上并没有附件。它有一个附件图标,但它只是一个图像——为了访问附件本身,我必须打开 CalendarItem。所以我想知道是否有一种方法可以直接更改邀请,而不仅仅是自动发送日历项的更新。也许这只是 Outlook 2007 的愚蠢?
    • 有趣。我将 Exchange 2010 与 Outlook 2010 一起使用。附件显示在日历邀请邮件正文中。我可以双击打开它。在 Outlook 以及 Outlook Web App 中。也许确实是 Outlook 2007 的一个怪癖。我没有一个副本来测试这个。
    • 哦,我明白了。我正在使用带有 Outlook 2007 的 Exchange 2010。很高兴知道。我可能不得不尝试另一种方法(即完全避免附加到 CalendarItems)。再次感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 2011-04-13
    • 1970-01-01
    相关资源
    最近更新 更多