首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python从Outlook下载附件

使用Python从Outlook下载附件
EN

Stack Overflow用户
提问于 2018-10-25 12:49:48
回答 1查看 5.7K关注 0票数 0

我正在尝试使用Python从Outlook下载附件,到目前为止可以按主题行下载附件,但在我的情况下,我想从主题行以某些字符串开头的多个电子邮件中下载多个附件,例如:主题是:查询123654,查询56975,查询5698像这样,我想下载主题名称以“查询”开头的所有附件。我当前的代码如下:

代码语言:javascript
复制
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")
EN

回答 1

Stack Overflow用户

发布于 2018-10-25 17:55:10

您可以使用find()来搜索特定数据。

代码语言:javascript
复制
sub_today = 'Query'

if msg.Subject.find(sub_today) != -1 break

如果subject中不包含Query,则返回-1。

这是完整的代码:

代码语言:javascript
复制
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")

有关详细信息,请参阅此链接:

Python String find() Method

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52981543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档