Как сохранить вложение из последнего конкретного письма, используя Python - PullRequest
0 голосов
/ 25 апреля 2019

Есть тысячи писем, и я хочу, чтобы вложения одного конкретного письма с фиксированной строкой темы сохранялись в текущем рабочем каталоге, когда я запускаю скрипт.

Я уже пытался прочитать несколько статей на эту тему, одна из которых - Как сохранить вложение из внешнего вида, используя win32com.client в Python?

Еще одна ветка reddit о том же, но я хочу только для одного конкретного письма

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 = 'Attachment 1.pdf'
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() + '\\Attachment 1.pdf')
att.ExtractFile('Attachment 1.pdf')
open(att)    
att.WriteToFile('x')

Это ошибка, которую я получаю при запуске скрипта:

D:\r>python attach.py
Traceback (most recent call last):
  File "attach.py", line 22, in <module>
    open(att)
TypeError: expected str, bytes or os.PathLike object, not CDispatch

Я ожидаю, что python сохранит вложение из последней электронной почты в каталог.

...