Re. 1, кажется, вы уже обнаружили, что message_id
остается нетронутым при перемещении элемента. Я не могу найти какой-либо твердой документации от EWS относительно этого факта, поэтому обязательно проведите обширное тестирование.
Re. 2, это правда, что вы можете использовать только account.fetch
со значениями item_id
. Однако есть некоторые вещи, на которые стоит обратить внимание:
- При вызове атрибутов
item.move()
, item.item_id
и item.changekey
обновляется новое местоположение, которое вы можете сохранить для будущей массовой операции. Смотри https://github.com/ecederstrand/exchangelib/blob/3a1def29951d26c8a1b7021c7582c3d118181140/exchangelib/items.py#L365
- Вы по-прежнему можете получать пакетные данные
message_id
, сначала переведя message_id
в item_id
. Это делает FindItem
вызов, а затем GetItem
вызов:
item_ids = account.inbox.filter(message_id__in=<your_message_ids>) \
.values_list('item_id', 'changekey')
bulk_items = account.fetch(item_ids)
Возможно, вы хотите разделить элементы на <your_message_ids>
, чтобы фильтр __in
не становился слишком большим.