如何使用Python保存来自特定发件人和日期的MS Outlook附件



我对编码有点陌生,我正在尝试了解如何让Python保存来自特定发件人的MS Outlook附件。目前,我每天收到来自同一个人的同一封电子邮件,内容涉及我需要保存到特定文件夹的数据。以下是我试图满足的要求:

  1. 我想打开MS Outlook并搜索特定的发件人
  2. 我想确保我从特定发件人打开的电子邮件是最新日期
  3. 我想将此发件人的所有附件保存到桌面上的特定文件夹中

我看过一些关于使用win32com.client的帖子,但运气不好,无法与MS Outlook配合使用。我将附上我在下面尝试过的一些代码。我感谢任何反馈!

import win32com.client
outlook=win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox=outlook.GetDefaultFolder(6)
messages=inbox.Items
for message in messages:
attachments = message.attachments
for attachment in attachments:
pass

你几乎得到了它,将过滤器添加到发件人电子邮件地址

import win32com.client
Outlook = win32com.client.Dispatch("Outlook.Application")
olNs = Outlook.GetNamespace("MAPI")
Inbox = olNs.GetDefaultFolder(6)
Filter = "[SenderEmailAddress] = '0m3r@email.com'"
Items = Inbox.Items.Restrict(Filter)
Item = Items.GetFirst()
for attachment in Item.Attachments:
print(attachment.FileName)
attachment.SaveAsFile(r"C:pathtomyfolderAttachment.xlsx")

Windows 上的 Python 3.8

def saveAttachments(email:object):
for attachedFile in email.Attachments: #iterate over the attachments
try:
filename = attachedFile.FileName
attachedFile.SaveAsFile("C:\EmailAttachmentDump\"+filename) #Filepath must exist already
except Exception as e:
print(e)
for mailItem in inbox.Items:
#Here you just need to bould your own conditions
if mailItem.Sender == "x" or mailItem.SenderName == "y":
saveAttachments(mailItem)

您可以根据自己的喜好更改的实际情况。我建议参考Outlook MailItem对象的对象模型:https://learn.microsoft.com/en-gb/office/vba/api/outlook.mailitem 特别是它的属性

相关内容

  • 没有找到相关文章

最新更新