如何在Python中保存电子邮件附件或告诉我没有附件?

时间:2017-07-27 16:25:32

标签: python outlook pywin32

这是我正在运行的以下代码...我在保存附件时遇到问题 -

import win32com.client
import os

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

inbox = outlook.GetDefaultFolder(6)

messages = inbox.Items
message = messages.GetFirst()
body_content = message.body
attachment = message.attachments

attachment.SaveASFile(os.getcwd() + '\\' + attachment.FileName)

print (body_content)

这是我得到的错误:

Traceback (most recent call last):
  File "C:/Users/BregmanM/PycharmProjects/test/TkinterApp/test13.py", line 13, in <module>
    attachment.SaveASFile(os.getcwd() + '\\' + attachment.FileName)
  File "C:\Users\BregmanM\AppData\Local\Programs\Python\Python36-32\lib\site-packages\win32com\client\dynamic.py", line 527, in __getattr__
    raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.SaveASFile

我该如何解决此错误?

1 个答案:

答案 0 :(得分:2)

附件变量指向“附件”集合(注意复数与单数)。您需要遍历Attachments集合中的项目,并为每个Attachment对象调用SaveAsFile。

其次,您假设Items.GetLast指向最新消息。事实并非如此。在您实际调用Items.Sort()之前,项目集合不会以任何方式排序。