Мой код отлично работал с тестовым файлом msg, скажем, file_1.
Но это не сработало с целевым сообщением, которое я действительно собирался запустить, скажем, это file_2.
Еще более странно то, что после того, как он выбросил com_error, он не смог запустить file_1.
См. Подробности во вставленном ниже фрагменте.
Поменял полный путь, не работает. Я закрыл свой клиент Outlook, не работает. Я пытался использовать другой пакет, не смог установить msg_extract, с сообщением об ошибке другого пакета с именем OLE something. Нашел пакет под названием outlook_msg, который мог бы анализировать мой файл msg, но там не так много функций, и я не мог даже получить адрес получателя электронной почты, поэтому мне, вероятно, следует придерживаться win32com.
from win32com import client as win32
outlook = win32.Dispatch('Outlook.Application').GetNamespace('MAPI')
msg = outlook.OpenSharedItem('file_1.msg')
print(msg.SenderEmailAddress)
кто-нибудь@email.com
outlook = win32.Dispatch('Outlook.Application').GetNamespace('MAPI')
msg = outlook.OpenSharedItem('file_2.msg')
print(msg.SenderEmailAddress)
com_error: (-2147352567, 'Произошло исключение.', (4096, 'Microsoft Outlook', «Мы не можем открыть 'file_2.msg'. Возможно, файл уже открыт или у вас нет разрешения на его открытие. . \ n \ nЧтобы проверить свои разрешения, щелкните папку с файлом правой кнопкой мыши и выберите "Свойства". ", Нет, 0, -2147287038), Нет)
outlook = win32.Dispatch('Outlook.Application').GetNamespace('MAPI')
msg = outlook.OpenSharedItem('file_1.msg')
print(msg.SenderEmailAddress)
com_error: (-2147352567, 'Произошло исключение.', (4096, 'Microsoft Outlook', «Мы не можем открыть 'file_1.msg'. Возможно, файл уже открыт, или у вас нет разрешения на его открытие. . \ n \ nЧтобы проверить свои разрешения, щелкните папку с файлом правой кнопкой мыши и выберите "Свойства". ", Нет, 0, -2147287008), Нет)
Я ожидаю, что file_2 может выдать результат, подобный file_1 в моей первой попытке, но он показал ошибку, которая была вставлена выше.
com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Outlook', "file_2.msg'. It's possible the file is already open, or you don't have permission to open it.\n\nTo check your permissions, right-click the file folder, then click Properties.", None, 0, -2147287008), None)