如何使用 Python exchangelib 获取 MeetingRequest 的原始接收者?

How to get the original recipient of a MeetingRequest using Python exchangelib?

场景

在我们的场景中,我们有:

资源邮箱已设置,以便将他们的会议请求转发到经理邮箱。管理员将代表资源接受或拒绝。

我们的 python 脚本使用 exchangelib 连接到经理帐户,获取会议请求并根据特定于资源的规则接受或拒绝。

问题

我们的问题是我们无法找到一种方法来了解与 MeetingRequest 相关的资源。

到目前为止我们尝试了什么

to_recipients 字段的值为 manager@xxx.yyy,因此没有帮助。

authorsender 字段的值是创建原始会议的邮箱,因此也无济于事。

我们不能依赖 required_attendeesoptional_attendees 有两个原因:

  1. 除资源外,与会者中总是有其他人的电子邮件地址,我们的脚本无法区分资源电子邮件地址和其他电子邮件地址。
  2. 同一个会议可以有多个资源。在这种情况下,每个资源都会有一个会议请求,每个资源都有与会者中的所有资源。

According to MS doc MeetingRequest 应该有一个 ReceivedRepresenting 字段,这似乎正是我们所需要的。不幸的是,它不存在于 exchangelib MeetingRequest object 中,尽管它在获取会议请求时来自 EWS 的 XML 响应中(我们可以通过禁用 exchangelib 调试日志记录来看到它)。

<t:ReceivedRepresenting>
    <t:Mailbox>
        <t:Name>Resource A</t:Name>
        <t:EmailAddress>resource_a@xxx.yyy</t:EmailAddress>
        <t:RoutingType>SMTP</t:RoutingType>
        <t:MailboxType>Mailbox</t:MailboxType>
    </t:Mailbox>
</t:ReceivedRepresenting>

有什么想法吗?

知道如何解决这个问题吗?

ReceivedRepresenting is not mentioned in the EWS documentation on MeetingRequest 您的 MeetingRequest XML 元素是否包含这样的子元素?如果是,请在 ecederstrand/exchangelib 提出问题,我会实施该字段。

更新: 我已经打开了一个 pull request against EWS docs to have this field added. And committed a change 来支持 exchangelib 中的字段。它在 v4.7.2 中发布。