我试图从我的电子邮件中获取所有附件,并给出电子邮件的特定标题,或者获取具有特定标题和附件的最后一封电子邮件
到目前为止,我有以下内容:
import pandas as pd
import win32com.client
import os
import datetime as date
import time
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6) # "6" refers to the index of a folder - in this case the inbox. You can change that number to reference
messages = inbox.Items
message = messages.GetLast()
val_date = date.date.today()
sub_today = 'GG in GD'
for item in messages:
if item.Subject == sub_today:
print(item.Subject)
print(item.SentOn)
attachments = item.Attachments
attachment = attachments.Item(1)
attachment.SaveAsFile(os.getcwd() + '\\' + str(attachment))
Good_Data = pd.read_csv(os.getcwd() + '\\' + str(attachment))
因为这个脚本的下一部分要求我在2.7上运行它,所以我不确定如何修复此代码以获得我需要的内容。在3.6我可以这样做:
for item in messages:
if item.Subject == sub_today and item.SentOn.date() == val_date:
理想情况下,我希望获得过去几天所有这些附件的列表,并抓住最新的附件,可能是日期。
我使用类型为item.SentOn
的{{1}}遇到了问题。我已尝试将其转换为字符串,然后time
,或从datetime.datetime.strptime()
中减去某些内容并尝试查看其是否大于。{1}}。但我没有取得任何成功。
即使我尝试将time.time()
对象转换为time
,它也会变得混乱。
datetime
我想让它做类似的事情:
message.SentOn
<PyTime:3/7/2018 10:18:03 AM>
date.date.fromtimestamp(message.SentOn)
datetime.date(1970, 1, 1)