outlook附件

sr4lhrrt  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(375)

我想有一个python脚本保存所有附件(从一个特定的文件夹和特定的时间戳(23:00)过滤他们的名字\u datestampf)。
你能帮帮我吗?
我正在使用以下代码(在另一个线程中找到),但它只允许我用标准名称保存收件箱文件夹中包含的最新邮件的附件:

import win32com.client
import os.path

Outlook = win32com.client.Dispatch("Outlook.Application")
olNs = Outlook.GetNamespace("MAPI")
Inbox = olNs.GetDefaultFolder(6)

Filtermail = "[SenderEmailAddress] = 'xxx@yyy.com'"

Items = Inbox.Items.Restrict(Filtermail)
Item = Items.GetFirst()

for attachment in Items.Attachments:
    print(attachment.FileName)
    attachment.SaveAsFile(os.getcwd() + '\\Mail\\' + 'zzzz.xlsx')
nfs0ujit

nfs0ujit1#

首先,您需要修改搜索条件以获取特定时间范围内的项目。

DateToCheck = "[RecievedTime] >= """ & DateStart & """"

其次,您需要迭代循环中找到的所有项,而不仅仅是获取第一个和处理附件(vba语法):

Set myRestrictItems = myContacts.Restrict(DateToCheck)  
For Each myItem In myRestrictItems  
    If (myItem.Class = olMail) Then  
       MsgBox myItem.Subject & ": " & myItem.RecievedTime
    End If  
Next

mailitem.receivedtime属性返回 Date 指明收到物品的日期和时间。
第三,这里是对带有附件的项目的搜索查询(vba语法):

query ="@SQL=" & chr(34) & "urn:schemas:httpmail:hasattachment" & chr(34) & "=True"

query ="@SQL=" & chr(34) & "urn:schemas:httpmail:hasattachment" & chr(34) & "=1"

这些示例是用vba编写的,因为我不熟悉python语法,但是outlook对象模型对于所有类型的编程语言都是通用的。所以,希望这不成问题。
您可以在以下文章中阅读有关find/findnext或restrict方法的更多信息:
如何:使用find和findnext方法检索outlook日历项
如何:在outlook中使用restrict方法获取日历项

相关问题