繁体   English   中英

如何使用 Python 从特定文件夹和时间保存 MS Outlook 附件

[英]How to save MS Outlook attachments from specific folder and hour using Python

我想要一个 Python 脚本来保存所有附件(带有来自特定文件夹的 name_datesamp 并过滤特定时间戳(23:00)。

请你帮助我好吗?

我正在使用以下代码(在另一个线程中找到),但它只允许我使用标准名称保存收件箱文件夹中包含的最新邮件的附件:

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')

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

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"

The samples are in VBA because I am not familiar with Python syntax, but the Outlook object model is common for all kind of programming languages. 所以,希望这不应该是一个问题。

您可以在以下文章中阅读有关Find / FindNextRestrict方法的更多信息:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM