I am trying to read the email and upload the attachment to my own folder using the win32com module in Python, I settled on getting the binding object:
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')
None of the last four lines work ...
>>> 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') does not have an error, but there is no such file in the working directory. It seems the line was just ignored ...
Can anyone help? Thanks in advance!
python email outlook win32com
lsheng
source share