使用Python脚本从Outlook 2013下载附件
我想要一个python脚本来下载任何具有指定名称但具有任何文件格式的文件(它可以是.txt,.csv,.pdf,.docx,.xlsx ,.味精等) 目前,我有以下Python代码从Outlook 2013下载附件:使用Python脚本从Outlook 2013下载附件
import win32com.client
from win32com.client import Dispatch
import datetime as date
import os.path
def attach(subject,name):
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
val_date = date.date.today()
sub_today = subject
att_today = name
for msg in all_inbox:
if msg.Subject == sub_today:
break
for att in msg.Attachments:
if att.FileName == att_today:
break
att.SaveASFile(os.getcwd() + '\\' + att.FileName)
print "Mail Successfully Extracted"
如果我让特定的某些类型的附件,它工作正常。
attach('Hi','cr.txt')
,但我想做的事情是这样的:
attach('Hi','cr.*')
所以它可以下载附件名为“CR”但是任何文件格式。
任何人都可以提出一个解决方法,这将有所帮助。
希望这有助于:)
import win32com.client, datetime
from win32com.client import Dispatch
import datetime as date
import os.path
def checkTime(current_message):
date_filter_unformated = datetime.date.today() - date.timedelta(days=7)
date_filter = date_filter_unformated.strftime("%m/%d/%y %I:%M:%S")
message_time = current_message.ReceivedTime
df_list = list(date_filter)
mt_list = list(str(message_time))
df_month, mt_month = int(''.join([df_list[0],df_list[1]])), int(''.join([mt_list[0],mt_list[1]]))
df_day, mt_day = int(''.join([df_list[3],df_list[4]])), int(''.join([mt_list[3],mt_list[4]]))
df_year, mt_year = int(''.join([df_list[6],df_list[7]])), int(''.join([mt_list[6],mt_list[7]]))
if mt_year < df_year:
return "Old"
elif mt_year == df_year:
if mt_month < df_month:
return "Old"
elif mt_month == df_month:
if mt_day < df_day:
return "Old"
else:
CurrentMessage(current_message)
return "Pass"
elif mt_month > df_month:
CurrentMessage(current_message)
return "Pass"
def CurrentMessage(cm):
print cm.Sender, cm.ReceivedTime
def getAttachment(msg,subject,name):
val_date = date.date.today()
sub_today = subject
att_today = name#if you want to download 'test.*' then att_today='test'
for att in msg.Attachments:
if att.FileName.split('.')[0] == att_today:
att.SaveASFile(os.getcwd() + '\\' + att.FileName)
def attach(subject,name):
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
all_inbox = all_inbox.Sort("[ReceivedTime]", True)
sub_today=subject
for current_message in all_inbox:
if checkTime(current_message) == "Pass" and current_message.Subject == sub_today:
getAttachment(current_message,subject,name)
print "Mail Successfully Extracted"
是否会根据附件名称下载附件,而不是基于文件扩展名? –
我跑了,它提出了错误:'--------------------------------------- ------------------------------------ TypeError
它将下载广告附件名称。 –
此外,这只适用于邮件代码检查今天收到'val_date = date.date.today()'我要检查在过去的7天收到的邮件附件。我应该怎么做?我搜索了** win32com **文档,但是我无法在任何地方找到它。 –