在共享文件夹中阅读 Outlook 电子邮件 - Python

Posted

技术标签:

【中文标题】在共享文件夹中阅读 Outlook 电子邮件 - Python【英文标题】:Reading Outlook Emails in Shared Folder - Python 【发布时间】:2019-11-14 13:11:12 【问题描述】:

我一直在使用以下代码访问 Outlook 中的公用文件夹:

import win32com.client
import datetime


outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

inbox = outlook.GetDefaultFolder(18).Folders.Item("xxxxx")
messages = inbox.Items
date = datetime.date.today()


subject = "xxxxxxx"

for message in messages:
    if subject in message.subject and date in message.senton.date():
     print(message.senton.time())

但是,我们的 Outlook 已从 Exchange 服务器移至云端,公用文件夹已更改为共享文件夹(我认为?)。上面的代码不再有效,我收到以下错误:

pywintypes.com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Outlook', 'The attempted operation failed.  An object could not be found.', None, 0, -2147221233), None)

有没有办法从共享邮箱中搜索邮件?

谢谢

【问题讨论】:

【参考方案1】:

试试这个:

inbox = outlook.Folders("Name of Shared Folder").Folders.Item("xxxxx")

【讨论】:

太棒了!这似乎奏效了,不过我还有一个问题。我似乎无法使用以前在旧文件夹中使用的代码从电子邮件中下载附件。我已经用下载附件的代码更新了我的问题。你知道怎么做吗? 好吧,没关系,我想我会发布一个单独的问题。再次感谢您的帮助! 你可以使用attachments = message.Attachments然后测试它是否有效,打印附件的名称:for i in range(attachments.Count): attachment = attachments.Item(i+1) print(attachment) 好吧,例如,您知道如何指定仅下载 excel 附件吗?并忽略 pdf 等? 我建议对字符串使用find() 函数并查找“.xlsx”或“.pdf”。祝你好运!

以上是关于在共享文件夹中阅读 Outlook 电子邮件 - Python的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Outlook/Exchange 2010 中列出共享文件夹的权限/所有者信息?

WordPress电子邮件共享按钮无法在Outlook中打开

共享收件箱 - 在 Outlook VBA 中跳过非邮件项目

Outlook插件 - 在共享的收件箱中移动邮件

Microsoft Outlook 教程,如何在 Outlook 中创建、发送、答复和转发电子邮件?

如何在 Outlook 中读取 Internet 标题和电子邮件