Я сталкиваюсь с некоторыми проблемами при попытке получить пакетную почту через python wincom32.client.
По сути, кажется, что существует ограничение на количество элементов, которые могут быть открыты в одном сеансе,и это флаг или статус на стороне сервера ... проблема в том, что я не нашел способа возобновить / закрыть / переустановить, и я не могу попросить системных администраторов сделать это для меня ..
Вот мой фрагмент кода - я знаю, что это некрасиво - но я использую его на ноутбуке Юпитера, просто чтобы поэкспериментировать / поиграться, прежде чем правильно его расположить.
import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
def create_message_list(folder):
return [{
"folder": folder.Name,
"sender" : m.Sender,
"recipients" : m.Recipients,
"subject" : m.subject,
"body":m.body
} for m in folder.Items]
for folder in outlook.Folders:
if (folder.Name=="myfolder.name"):
message_list = create_message_list(folder)
и вот что я получаю:
com_error: (-2147352567, «Произошло исключение.», (4096, «Microsoft Outlook», «Администратор сервера ограничил количество элементов, которые вы можете открывать одновременно. Попробуйте закрыть открытые вами сообщения»).или удаление вложений и изображений из неотправленных сообщений, которые вы создаете. ', Нет, 0, -2147220731), Нет).
Обратите внимание, что в i мой эскизный код работал некоторое время .я мог бы получить что-то вроде 10 тыс. сообщений, прежде чем он перепутался с этой ошибкой.
Вещи, которые я пытался (без результата) - попытаться закрыть сеанс папки / mapi - запустить цикл for для тех же элементови вызывая сообщение. Close (0) - используя методы GetFirst () / GetLast () для сообщения вместо понимания списка
благодарит всех за идеи / предложения / что угодно.