MAPI не определен

#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 с заглавной буквы