#python #outlook
#python #outlook
Вопрос:
У меня был код, который хорошо работал в течение 3 месяцев, до сих пор я начал видеть ошибки и не уверен, что нуждается в доработке
Мой исходный код был таким:
import pandas as pd
import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application")
namespace = outlook.GetNamespace("MAPI")
root_folder = namespace.Folders.Item(3)
subfolder = root_folder.Folders['Inbox'].Folders['Daily Process']
messages = subfolder.Items
message = messages.GetFirst()
subj_line = message.subject
Однако я получаю следующую ошибку
com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Outlook', 'The attempted operation failed. An object could not be found.', None, 0, -2147221233), None)
Я разбил свой код, и кажется, что имя «MAPI» больше не определено
import pandas as pd
import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application")
namespace = outlook.GetNamespace("MAPI")
your_folder = namespace.Folders['Inbox'].Folders['Daily Process']
for message in your_folder.Items:
print(message.Subject)
Что дает мне
name 'mapi' is not defined
Комментарии:
1. Я был бы удивлен, если бы этот фрагмент когда-либо работал. Вы имеете в виду
mapi = outlook.GetNamespace("MAPI")
?2. ПРИВЕТ, Жак, я использовал пространство имен = ~ . Пожалуйста, ознакомьтесь с исправленным кодом
3. @AliShaikh Жак предлагает, как исправить ошибку. Проблема в том, что у вас нет ничего с именем
mapi
. Один из способов исправить это — инициализировать переменную правильным значением с помощьюmapi = ...
. В качестве альтернативы вы можете сделатьnamespace.Folders...
. Я предлагаю вам узнать, как переменные работают в Python.4. Пробовал и это, все та же ошибка
Ответ №1:
Попробуйте в нижнем регистре:
outlook = win32com.client.Dispatch("outlook.application")
У меня также была такая же ошибка, когда я вводил Outlook с заглавной буквы