РЕДАКТИРОВАТЬ: РЕШЕНО!
Я добавил этот фрагмент кода ниже, чтобы отследить положение основной папки входящих сообщений
для папки в outlook.Folders:
печать (папка)
Это подчеркнуло, что что-то изменилось в базовой структуре Outlook, и папка [0] больше не действительна. Теперь я настрою код, чтобы сделать его более надежным и динамически выбирая папку
КОНЕЦ РЕДАКТИРОВАНИЯ
Я написал код для извлечения писем из Outlook и сохранения вложений. Это работало отлично до нескольких дней назад.
Я не трогал код, поэтому могу только предположить, что что-то в Outlook изменилось. Я работаю в корпоративной среде, поэтому есть дистанционное обновление программного обеспечения.
Кто-нибудь знает, что означает эта ошибка и почему она неожиданно возникла? Я очень унылый, так как код работал так хорошо до этого сбоя. В качестве альтернативы, есть ли лучший способ извлечь электронную почту и вложения из Outlook, используя Python?
import win32com.client
def main():
pass
def saveAttachments():
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") # Opens Microsoft Outlook
mailbox = outlook.Folders[0] # Based off email address
inbox = mailbox.Folders["Inbox"]
emails = inbox.Items
emails.Sort("[ReceivedTime]", True)
destPath = "\\\\servername\\path\\"
try:
for mail in emails:
if ("Detailed MTM," in mail.subject) and (mail.Attachments.Count > 0):
print(mail.Sender)
print(mail.Subject)
print(mail.Receivedtime)
attachments = mail.Attachments
for file in attachments:
if "MTMDetailed" in str(file):
file.SaveAsFile(destPath + str("MTMDetailed.xls"))
break
except:
file = open(destPath + "error.log", "w")
file.write("Problem")
file.close()
if __name__ == '__main__':
main()
saveAttachments()
File "C:\Tools\Python\lib\site-packages\win32com\client\dynamic.py", line 256, in __getitem__
return self._get_good_object_(self._oleobj_.Invoke(dispid, LCID, invkind, 1, index))
pywintypes.com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Outlook', 'The attempted operation failed. An object could not be found.', None, 0, -2147221233), None)