Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用Python将Outlook邮件正文内容复制到WORD文档_Python 3.x_Vbscript_Outlook - Fatal编程技术网

Python 3.x 使用Python将Outlook邮件正文内容复制到WORD文档

Python 3.x 使用Python将Outlook邮件正文内容复制到WORD文档,python-3.x,vbscript,outlook,Python 3.x,Vbscript,Outlook,我想编写一个python程序,将outlook邮件正文(邮件正文:包含表格)的内容复制到word文档中 import win32com.client import pythoncom class Handler_Class(object): def OnNewMailEx(self, receivedItemsIDs): for ID in receivedItemsIDs.split(",") mailItem = outlook.Sessio

我想编写一个python程序,将outlook邮件正文(邮件正文:包含表格)的内容复制到word文档中

import win32com.client
import pythoncom

class Handler_Class(object):
    def OnNewMailEx(self, receivedItemsIDs):
        for ID in receivedItemsIDs.split(",")
            mailItem = outlook.Session.GetItemFromID(ID)
            print(mailItem.Body)
outlook = win32com.client.DispatchWithEvents("Outlook.Application", Handler_Class)
pythoncom.PumpMessages()
当我尝试使用“print(mailItem.body)”打印邮件正文时,表格内容显示为文本,而不是表格格式


有谁能帮助我如何使用python将邮件正文内容导出到word文档而不更改其格式。

首先,不需要拆分传递给
应用程序
类的
NewMailEx
事件的字符串

NewMailEx
事件在新邮件到达收件箱时以及客户端规则处理发生之前触发。您可以使用
entrydcollection
数组中返回的条目ID调用该方法并处理该项。
entryidscolection
字符串包含与该项对应的条目ID。请注意,当
EntryIDCollection
包含自上次触发事件以来收件箱中接收的所有项目的逗号分隔条目ID列表时,此行为与事件的早期版本不同。请谨慎使用此方法,以尽量减少对Outlook性能的影响。但是,根据客户端计算机上的设置,在新邮件到达收件箱后,垃圾邮件过滤和将新邮件从收件箱移动到另一个文件夹的客户端规则等过程可能会异步进行

Outlook对象模型提供了三种处理项目主体的主要方法:

  • 编辑这个词。
    Inspector
    类的属性返回表示消息正文的Word文档的实例。因此,您可以使用Word对象模型对消息体执行任何需要的操作。您可以访问表示消息正文的文档,并复制/粘贴所需的范围或段落
    您可以在MSDN中阅读更多关于所有这些方法的信息

    谢谢你的回复。您提供的解决方案是VBScript。为此,我需要将python对象Mailitem传递给VBScript
    public sub-Word\u转换(OutlookMail作为Mailitem)
    您能帮我了解如何将python对象传递给VB宏吗。。我是VBO的新手Outlook对象模型对所有编程语言都是一样的。您已经有了mailItem实例:
    mailItem=outlook.Session.GetItemFromID(ID)
    。我已经通过将mailItem传递给vb宏进行了尝试。我得到一个错误pythoncom error:Python调用COM方法时出错。你能提供一些见解吗。。我陷入了这样的困境:(很简单,上面我用来获取邮件实例的python代码,这是VBScript宏
    public sub-Word\u转换(OutlookMail as Mailitem)
    ,我将在python脚本中调用它。在这个宏中,我试图打印Mailitem(to,BODY)中的属性然后我将创建word对象,复制并粘贴内容。