明确记录的使用Python win32com ou阅读电子邮件功能

我试图通过win32com更好地了解Outlook交互。 我一直无法找到清晰的文档,使我无法利用win32com来有效地阅读电子邮件,从我目前的调查来看,用户的感觉似乎相当正常。 因此,以下信息和要求如下:

有人可以吗?

1.给出指向清晰文档位置的链接(如果存在)

2.在下面展开

以下是我在阅读其他人的代码后发现的当前功能。

采取以下代码:

import win32com

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

inbox=outlook.GetDefaultFolder(6)

messages=inbox.Items

for message in messages:
    attachments = message.attachments

    for attachment in attachments:
        pass

上面使用的对象具有我所知道的以下功能:

收件箱-

.Folders
.Items

讯息-

.GetFirst()
.GetLast()
.GetNext()
.GetPrevious()
.Attachments

信息 -

.Subject
.Body
.To
.Recipients
.Sender
.Sender.Address

附件-

.item()
.Count

附件 -

.filename

如果您知道更多功能,请在答案中添加。

Phoenix asked 2020-07-27T21:05:25Z
5个解决方案
26 votes

应用程序参考的可视基础知识是您的朋友。 尝试从此链接开始...

Interop Outlook Mailitem属性

例如,我可以看到该消息可能具有比上面列出的属性更多的属性。 例如。

  • message.CC
  • 消息。重要性
  • message.LastModificationTime
Genome answered 2020-07-27T21:06:12Z
20 votes

对于每个想知道如何访问任何默认文件夹(不仅仅是“收件箱”)的人,以下是列表:

3  Deleted Items
4  Outbox
5  Sent Items
6  Inbox
9  Calendar
10 Contacts
11 Journal
12 Notes
13 Tasks
14 Drafts

还有更多(提醒,同步错误等); 您可以使用以下代码获得完整列表(受约翰·库克(John Cook)对文件夹的解决方案的启发):

import win32com
outlook=win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
for i in range(50):
    try:
        box = outlook.GetDefaultFolder(i)
        name = box.Name
        print(i, name)
    except:
        pass

我不会在此处粘贴整个列表,因为我的语言是波兰语,不会真正有帮助。

pajonk answered 2020-07-27T21:06:41Z
5 votes

我以为我也要在浏览文件夹时添加一些内容-所有这些都源自上面的Microsoft文档,但是在此处使用可能会有所帮助,特别是如果您尝试在Outlook文件夹结构中除收件箱之外的任何位置。

您可以使用.Items浏览文件夹集合-请注意,在这种情况下,GetNamespace之后没有GetDefaultFolder(否则您可能会收到收件箱)。

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace('MAPI')
folder = outlook.Folders[1]

该数字是您要访问的文件夹的索引。 要找出其中有多少个子文件夹:

folder.Count

如果有更多子文件夹,则可以使用另一个.Items进行更深入的介绍:

folder.Folders[2]

.Items返回一个子文件夹列表,因此,要获取当前目录中所有文件夹的名称,可以使用快速循环。

for i in range(folder.Count):
    print (folder[i].Name)

每个子文件夹都有.Items方法来获取电子邮件列表。

John Cook answered 2020-07-27T21:07:24Z
3 votes

您可以在OutlookSpy中查看所有活动的Outlook对象及其数据。

MailItem对象的属性,方法和事件在[https://msdn.microsoft.com/zh-cn/library/office/ff861332.aspx]中有完整记录

Dmitry Streblechenko answered 2020-07-27T21:07:48Z
0 votes

对于附件[https://docs.microsoft.com/zh-cn/office/vba/api/outlook.attachment](请参阅属性)

attachment.FileName
attachment.Type
attachment.Position
attachment.BlockLevel
attachment.Class
attachment.DisplayName
attachment.Parent
attachment.Session
attachment.Size
attachment.Index
attachment.Application
Mika72 answered 2020-07-27T21:08:08Z
translate from https://stackoverflow.com:/questions/22813814/clearly-documented-reading-of-emails-functionality-with-python-win32com-outlook