![](/img/trans.png)
[英]How to save MS Outlook attachments from specific sender and date using Python
[英]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. 所以,希望这不应该是一个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.