You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python仅从Outlook最新邮件下载附件?

修改后的代码:仅下载指定文件夹最新符合条件邮件的附件

以下是修改后的代码,实现仅下载指定文件夹内最新的、主题匹配的邮件附件:

from pathlib import Path
import win32com.client

output_dir = Path.home() / r"Documents\Test"
output_dir.mkdir(parents=True, exist_ok=True)

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
# 定位到目标子文件夹
target_folder = outlook.GetDefaultFolder(6).Folders("Sample Folder").Folders("Sample Subfolder")
messages = target_folder.Items

# 按邮件接收时间降序排序,最新的邮件排在最前面
messages.Sort("[ReceivedTime]", True)
# 获取最新的一封邮件
latest_message = messages.GetFirst()

# 检查该邮件主题是否符合要求
if latest_message.Subject in ('Sample Subject', 'Sample Subject 2'):
    attachments = latest_message.Attachments
    # 遍历附件并保存
    for attachment in attachments:
        save_path = output_dir / str(attachment)
        attachment.SaveAsFile(save_path)

关键修改说明:

  • 邮件排序:通过messages.Sort("[ReceivedTime]", True)对邮件按接收时间降序排列,确保最新邮件排在首位
  • 仅处理最新邮件:直接获取排序后的第一封邮件,无需遍历所有邮件,提升效率
  • 修正原代码错误:原代码中subject = messages.GetFirst().Subject属于无效冗余引用,已删除

内容的提问来源于stack exchange,提问作者Aladdin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 21:15:34