【问题标题】:Pywin32 not saving attachments from Outlook (Restrict.Attachements)Pywin32 不保存 Outlook 中的附件(Restrict.Attachments)
【发布时间】:2021-09-20 13:34:47
【问题描述】:

我正在尝试从 Python 中的 Outlook 收件箱中的特定发件人那里下载附件。我正在使用 win32com.client。似乎 python 正在寻找我正在寻找的电子邮件,但在尝试保存时出现错误 Restrict.Attachements。有人可以帮忙吗?谢谢

Python:3.6.12 64 位

import win32com.client as clt
import os
from datetime import datetime, timedelta


outlook = clt.Dispatch('outlook.application')
mapi = outlook.GetNamespace("MAPI")

inbox = mapi.GetDefaultFolder(6)

messages = inbox.Items
messages = messages.Restrict("[SenderEmailAddress] = testmail@testemail.com")

received_dt = datetime.now() - timedelta(hours=5)
received_dt = received_dt.strftime('%m/%d/%Y %H:%M %p')

for message in list(messages):
    try:
        s = message.sender
        for attachement in messages.Attachments:
            attachement.SaveASFile(os.pah.join("C:/Users/me/Desktop/", attachement.FileName))
    except Exception as e:
        print(e)

编辑:我确认代码找到了正确的电子邮件,但在循环中它通过了异常

>>> for message in list(messages):
...     try:
...         s = message.sender
...         for attachement in messages.Attachments:
...             attachement.SaveASFile(os.pah.join("C:/Users/me/Desktop/", attachement.FileName))
...     except Exception as e:
...         print(message.Subject, "Error: ", e)
...
TestMail Error:  Restrict.Attachments

【问题讨论】:

  • 什么是“Restrict.Attachements”?您唯一的限制是发件人电子邮件,您可能希望将值括在单引号中。

标签: python winapi outlook pywin32


【解决方案1】:

您需要使用message 对象来获取附件,而不是messages。在代码中,我看到以下几行:

 for attachement in messages.Attachments:
            attachement.SaveASFile(os.pah.join("C:/Users/me/Desktop/", attachement.FileName))

相反,您需要使用以下代码:

 for attachement in message.Attachments:
            attachement.SaveASFile(os.pah.join("C:/Users/me/Desktop/", attachement.FileName))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-12
    • 2023-02-02
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 2017-08-28
    相关资源
    最近更新 更多