Python 从 Outlook 保存附件
Python Saving Attachments from Outlook
我正在尝试自动化一些 python 代码,这些代码会自动保存某些电子邮件中具有特定标题的附件。
以下是我目前拥有的:
import win32com.client as client
outlook = client.Dispatch('Outlook.Application')
namespace = outlook.GetNameSpace('MAPI')
inbox = namespace.GetDefaultFolder(6)
target_subject = 'Testing attachment'
mail_items = [item for item in inbox.Items if item.Class == 43]
filtered = [item for item in mail_items if item.Subject == target_subject]
if len(filtered) != 0:
target_email = filtered[0]
if target_email.Attachments.Count > 0:
attachments = target_email.Attachments
save_path = 'C:'
for file in attachments:
file.SaveAsFile(save_path.format(file.FileName))
但是我似乎遇到了权限错误?
com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Outlook', "Cannot save the attachment. You don't have appropriate permission to perform this operation.", None, 0, -2147024891), None)
不确定如何解决这个问题,我是管理员等等
我也想知道实际在线部署并拥有它需要哪些更改 运行,即我没有传递任何凭据,因为它是本地的,如果单独运行我希望它能够访问我的收件箱每 7 天左右从这个特定的电子邮件下载这个特定的附件。
任何帮助将不胜感激。
谢谢!
默认情况下,用户没有对根驱动器 (C:) 的写入权限。
将其更改为 'c:\temp\'
选择另一个驱动器或文件夹,例如,My Documents
不需要管理员权限即可写入。否则,如果您想向系统驱动器 (C:) 写入任何内容,则必须 运行 具有管理员权限的 Outlook。
我还注意到以下代码行:
mail_items = [item for item in inbox.Items if item.Class == 43]
filtered = [item for item in mail_items if item.Subject == target_subject]
遍历文件夹中的所有项目并不是一个好主意,而且,你这样做了两次!
我建议使用 Items class 的 Find
/FindNextor
Restrict` 方法,它只允许获取符合指定条件的项目。在以下文章中阅读有关这些方法的更多信息:
我正在尝试自动化一些 python 代码,这些代码会自动保存某些电子邮件中具有特定标题的附件。
以下是我目前拥有的:
import win32com.client as client
outlook = client.Dispatch('Outlook.Application')
namespace = outlook.GetNameSpace('MAPI')
inbox = namespace.GetDefaultFolder(6)
target_subject = 'Testing attachment'
mail_items = [item for item in inbox.Items if item.Class == 43]
filtered = [item for item in mail_items if item.Subject == target_subject]
if len(filtered) != 0:
target_email = filtered[0]
if target_email.Attachments.Count > 0:
attachments = target_email.Attachments
save_path = 'C:'
for file in attachments:
file.SaveAsFile(save_path.format(file.FileName))
但是我似乎遇到了权限错误?
com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Outlook', "Cannot save the attachment. You don't have appropriate permission to perform this operation.", None, 0, -2147024891), None)
不确定如何解决这个问题,我是管理员等等
我也想知道实际在线部署并拥有它需要哪些更改 运行,即我没有传递任何凭据,因为它是本地的,如果单独运行我希望它能够访问我的收件箱每 7 天左右从这个特定的电子邮件下载这个特定的附件。
任何帮助将不胜感激。
谢谢!
默认情况下,用户没有对根驱动器 (C:) 的写入权限。
将其更改为 'c:\temp\'
选择另一个驱动器或文件夹,例如,My Documents
不需要管理员权限即可写入。否则,如果您想向系统驱动器 (C:) 写入任何内容,则必须 运行 具有管理员权限的 Outlook。
我还注意到以下代码行:
mail_items = [item for item in inbox.Items if item.Class == 43]
filtered = [item for item in mail_items if item.Subject == target_subject]
遍历文件夹中的所有项目并不是一个好主意,而且,你这样做了两次!
我建议使用 Items class 的 Find
/FindNextor
Restrict` 方法,它只允许获取符合指定条件的项目。在以下文章中阅读有关这些方法的更多信息: