【问题标题】:Python : Save Email Attachment with particular Subject at a given LocationPython:在给定位置保存具有特定主题的电子邮件附件
【发布时间】:2024-09-26 23:10:01
【问题描述】:

我想使用 Python 保存来自 Outlook 的附件,来自固定电子邮件主题的附件。我已经搜索过它得到了一个不起作用的答案,我无法发表评论。 - Save using Win32 Outlook

我尝试了代码,这里是 -

from win32com.client import Dispatch
import datetime as date
import os

outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
val_date = date.date.today()

sub_today = 'Download Attachment 1'
att_today = '1.csv'
for msg in all_inbox:
    if msg.Subject == sub_today:
        break

for att in msg.Attachments:
    if att.FileName == att_today:
        break

att.SaveAsFile(os.getcwd() + '\\1.csv')
att.ExtractFile('1.csv')
open(att)    
att.WriteToFile('x')

在命令提示符中执行它时,我得到错误 -

D:\r>python attach.py
Traceback (most recent call last):
  File "attach.py", line 21, in <module>
    att.ExtractFile('1.csv')
  File "C:\Program Files\Python37\lib\site-packages\win32com\client\dynamic.py", line 527, in __getattr__
    raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.ExtractFile

【问题讨论】:

    标签: python python-3.x outlook pywin32 win32com


    【解决方案1】:

    OOM 中的Attachment 对象(代码中的att 变量)不公开ExtractFile 方法。它也不公开 WriteToFile 方法。

    【讨论】:

    • 我应该怎么做才能解决
    • 我不知道你想对保存的文件做什么。
    • 我想进一步执行 pandas 操作,大多数时候是 csv 或 excel 文件。
    • 我真的对pandas的操作一无所知。我只能帮助解决 Outlook 问题。
    • att.SaveAsFile() 行就是您所需要的。只需删除下面的代码。