使用Microsoft Outlook 2010中的Python写入csv

使用Microsoft Outlook 2010中的Python写入csv,python,email,csv,export-to-csv,outlook-2010,Python,Email,Csv,Export To Csv,Outlook 2010,我每周收到大约60封电子邮件,我必须手动将数据输入csv文件。我使用Microsoft Outlook 2010,收件箱中有一个子文件夹,名为“市场电子邮件”。在这个子文件夹中,我有一些电子邮件,其中包括所有者姓名、企业名称以及我需要写入csv的电子邮件 我正试图用Python实现这一点,但我不确定我是否能够做到。谢谢你能提供的任何帮助 这是一个相当广泛的问题,但这是可能的,使用.NET COM互操作 StackOverflow帖子也会介绍一些类似的内容,您可以使用这些内容从收到的电子邮件中获取

我每周收到大约60封电子邮件,我必须手动将数据输入csv文件。我使用Microsoft Outlook 2010,收件箱中有一个子文件夹,名为“市场电子邮件”。在这个子文件夹中,我有一些电子邮件,其中包括所有者姓名、企业名称以及我需要写入csv的电子邮件


我正试图用Python实现这一点,但我不确定我是否能够做到。谢谢你能提供的任何帮助

这是一个相当广泛的问题,但这是可能的,使用.NET COM互操作

StackOverflow帖子也会介绍一些类似的内容,您可以使用这些内容从收到的电子邮件中获取详细信息

以上帖子中的代码:

import win32com.client
import pythoncom
import re

class Handler_Class(object):
    def OnNewMailEx(self, receivedItemsIDs):
        # RecrivedItemIDs is a collection of mail IDs separated by a ",".
        # You know, sometimes more than 1 mail is received at the same moment.
        for ID in receivedItemsIDs.split(","):
            mail = outlook.Session.GetItemFromID(ID)
            subject = mail.Subject
            try:
                # Taking all the "BLAHBLAH" which is enclosed by two "%". 
                command = re.search(r"%(.*?)%", subject).group(1)

                print command # Or whatever code you wish to execute.
            except:
                pass


outlook = win32com.client.DispatchWithEvents("Outlook.Application", Handler_Class)

#and then an infinit loop that waits from events.
pythoncom.PumpMessages() 
Excel


然后,您将继续使用interop for excel,并提供相当广泛的教程

您到底想让我们了解些什么这是非常广泛的;你只是想知道Python是否可以做到这一点吗?我想我想知道他是否尝试了一些东西。如果你有64,我肯定会被卡住,并试图弄清楚这是否可能——谢谢@haddow64我目前正在尝试实现您的解决方案,但似乎找不到有关DispatchWithEvents的文档。我可以和你核实一下它是否有效吗?我必须将Outlook和一个类传递给DispatchWithEvents——如果我在类中有多个函数,它会调用哪个函数?另外,我如何知道DispatchWithEvents会将ReceivedItemId传递到OneNewMailEx函数中?非常感谢。