我正在尝试使用Python从Outlook下载附件,到目前为止可以按主题行下载附件,但在我的情况下,我想从主题行以某些字符串开头的多个电子邮件中下载多个附件,例如:主题是:查询123654,查询56975,查询5698像这样,我想下载主题名称以“查询”开头的所有附件。我当前的代码如下:
from win32com.client import Dispatch
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
val_date = datetime.date.today()
sub_today = 'Query 123654'
att_today = ''
for msg in all_inbox:
if msg.Subject == sub_today and msg.Senton.date() == val_date:
break
for att in msg.Attachments:
if att.FileName == att_today:
break
try:
att.SaveAsFile('C:\\Offline Feeds\\Attachments' + '\\'+ att.FileName)
messagebox.showinfo("SUCCESSFUL","Attachments Downloaded")
except:
messagebox.showerror("ERROR","Attachment Download Failed")发布于 2018-10-25 17:55:10
您可以使用find()来搜索特定数据。
sub_today = 'Query'
if msg.Subject.find(sub_today) != -1 break如果subject中不包含Query,则返回-1。
这是完整的代码:
from win32com.client import Dispatch
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
val_date = datetime.date.today()
sub_today = 'Query'
att_today = ''
for msg in all_inbox:
if msg.Subject.find(sub_today) != -1 and msg.Senton.date() == val_date:
break
for att in msg.Attachments:
if att.FileName == att_today:
break
try:
att.SaveAsFile('C:\\Offline Feeds\\Attachments' + '\\'+ att.FileName)
messagebox.showinfo("SUCCESSFUL","Attachments Downloaded")
except:
messagebox.showerror("ERROR","Attachment Download Failed")有关详细信息,请参阅此链接:
https://stackoverflow.com/questions/52981543
复制相似问题