【发布时间】:2014-04-19 10:32:46
【问题描述】:
我正在尝试使用 Python 中的 win32com 模块阅读电子邮件并将附件下载到我自己的文件夹中,但我停止获取附件对象:
from win32com.client import Dispatch
import datetime as date
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
val_date = date.date.today()
sub_today = 'Hi'
att_today = 'Attachment.xlsx'
for msg in all_inbox:
if msg.Subject == sub_today:
break
for att in msg.Attachments:
if att.FileName == att_today:
break
att.SaveAsFile('new.xlsx')
att.ExtractFile('new.xlsx')
open(att)
att.WriteToFile('x')
最后 4 行都不起作用...
>>> att.ExtractFile('new.xlsx')
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.ExtractFile
>>> open(att)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: coercing to Unicode: need string or buffer, instance found
>>> att.WriteToFile('x')
raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.WriteToFile
att.SaveAsFile('new.xlsx')没有错误,但是工作目录下没有这个文件。似乎该行被忽略了...
有人可以帮忙吗?提前致谢!
【问题讨论】:
-
你现在应该可以接受你的答案了 :)。
-
你能在这里发布你完整的解析代码吗?我正在尝试对您的代码执行相同的操作,并且遇到了同样的问题。
标签: python email outlook win32com