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

使用Pythin脚本从Outlook下载附件
EN

Stack Overflow用户
提问于 2019-11-03 18:03:48
回答 1查看 123关注 0票数 0

现在我写了一段代码,每天运行它来获取昨天电子邮件的附件。当我运行它时,附件并没有被下载,而是我得到了一个名为"@“的文件。

代码如下:

代码语言:javascript
复制
import win32com.client
import os
from datetime import datetime, date, time, timedelta

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6).Folders.Item("Inbox Subfolder Name") 
messages = inbox.Items
message = messages.GetFirst()
subject = message.Subject

# Get yesterdays date for the purpose of getting emails from this date
d = (date.today() - timedelta (days=1)).strftime("%y-%m-%d")
yesterdaydate=("20"+d)
print yesterdaydate

get_path_clt1 = "Folder Location" + yesterdaydate+"\\"

if os.path.exists(get_path_clt1):
    print " File Exists"
else:
    os.mkdir(get_path_clt1)


for m in messages:
    date = str(m.senton)
    date_time_obj = datetime.strptime(date,'%m/%d/%y %H:%M:%S')
    messagedate=date_time_obj.date()

    if str(yesterdaydate) == str(messagedate) and (m.Subject == "Subject Name to compare") :
        print (message)
        print (messagedate)
        attachments = message.Attachments
        num_attach = len([x for x in attachments])
        print("test-1")
        for x in range(1, num_attach+1):
            print("test-in-1")
            attachment = attachments.Item(x)
            attachment.SaveAsFile(os.path.join(get_path_clt1,attachment.FileName))
            print (attachment)
            print ("---------------------")
            break
        message = messages.GetNext()

    else:
        message = messages.GetNext()
EN

回答 1

Stack Overflow用户

发布于 2019-11-04 18:15:13

首先,不需要遍历所有附件来获得数字:

代码语言:javascript
复制
 num_attach = len([x for x in attachments])

相反,您可以使用Attachments.Count属性,该属性返回一个整数,该整数指示指定集合中的对象计数。

其次,确保您指定了有效的文件名:

代码语言:javascript
复制
 attachment.SaveAsFile(os.path.join(get_path_clt1,attachment.FileName))

我建议先检查attachment.FileName的值,或者生成自己的值。

最后,您可以检查Attachment.Type属性,该属性返回一个指示指定对象类型的OlAttachmentType常量。

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

https://stackoverflow.com/questions/58679092

复制
相关文章

相似问题

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