Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.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
是否可以使用ironpython在outlook客户端截取和重写电子邮件?_Python_Vba_Outlook_Ironpython - Fatal编程技术网

是否可以使用ironpython在outlook客户端截取和重写电子邮件?

是否可以使用ironpython在outlook客户端截取和重写电子邮件?,python,vba,outlook,ironpython,Python,Vba,Outlook,Ironpython,我想截取一些自动发送的电子邮件,并将其转换成更可读的格式。我相信使用VBA可以做到这一点,但我更愿意使用Python操作文本。我可以创建ironpython客户端脚本来预处理某些电子邮件吗 编辑: 我相信这可以通过outlook规则实现。在Outlook 2007中,您可以执行以下操作: 工具->规则->新规则 “邮件到达时检查邮件” 下一个 [筛选要处理的电子邮件] 下一个 “运行脚本” 在“运行脚本”中,它允许您使用VBA脚本。我只能为您提供一个指针。几年前,我在Outlook中使用了贝叶斯

我想截取一些自动发送的电子邮件,并将其转换成更可读的格式。我相信使用VBA可以做到这一点,但我更愿意使用Python操作文本。我可以创建ironpython客户端脚本来预处理某些电子邮件吗

编辑: 我相信这可以通过outlook规则实现。在Outlook 2007中,您可以执行以下操作: 工具->规则->新规则

“邮件到达时检查邮件”

下一个

[筛选要处理的电子邮件]

下一个

“运行脚本”


在“运行脚本”中,它允许您使用VBA脚本。

我只能为您提供一个指针。几年前,我在Outlook中使用了贝叶斯垃圾邮件过滤器。它是用Python编写的,并提供了一个Outlook插件来过滤传入的邮件。该软件的名称是,该项目仍然在线。由于它是开源的,您可能会找到如何将邮件过滤器插入Outlook的所有必要信息。这将为您提供足够的背景,以便添加能够转换邮件内容的代码。我的理解是,它是用香草Python(CPython)编写的,但如果您更熟悉IronPython,那么翻译起来应该不难。试试看。

我只能给你一个指针。几年前,我在Outlook中使用了贝叶斯垃圾邮件过滤器。它是用Python编写的,并提供了一个Outlook插件来过滤传入的邮件。该软件的名称是,该项目仍然在线。由于它是开源的,您可能会找到如何将邮件过滤器插入Outlook的所有必要信息。这将为您提供足够的背景,以便添加能够转换邮件内容的代码。我的理解是,它是用香草Python(CPython)编写的,但如果您更熟悉IronPython,那么翻译起来应该不难。试一试。

您可以在此处引用outlook对象模型:

通过COM连接到outlook,您将需要

据我所知,没有python引用,但您可以引用示例脚本并将其“翻译”为python。一开始很难,但一旦您了解了对象及其在python中的用法,就不难了

看起来您要查看:


您可以在此处引用outlook对象模型:

通过COM连接到outlook,您将需要

据我所知,没有python引用,但您可以引用示例脚本并将其“翻译”为python。一开始很难,但一旦您了解了对象及其在python中的用法,就不难了

看起来您要查看:


这是一项正在进行的工作,但在其他帖子的帮助下,我已经找到了部分答案。以下是通过运行脚本重新编写指定电子邮件的说明。我正在使用Outlook 2007

  • 下载并安装

  • 下载并安装

  • 将此代码放入文件中,并从
    cmd
    运行它:

  • import os, sys, re
    import win32com.client
    session = win32com.client.gencache.EnsureDispatch("MAPI.session")
    win32com.client.gencache.EnsureDispatch("Outlook.Application")
    outlook = win32com.client.Dispatch("Outlook.Application")
    #print '\n'.join(dir(outlook))
    mapi = outlook.GetNamespace('MAPI')
    inbox =  mapi.GetDefaultFolder(win32com.client.constants.olFolderInbox)
    items = inbox.Items
    #items.Restrict("[Unread] = true")
    #print '\n'.join(dir(items))
    while True:
        item = items.GetNext()
        if item == None: break
        #print '\n'.join(dir(item))
        if re.compile(r'crazy email').search(item.Subject):
            print item.Subject
            print item.Body
            # works VVVV
            item.Body = 'whoya!'
            item.Save()
            break
    

    这是一项正在进行的工作,但在其他帖子的帮助下,我已经找到了部分答案。以下是通过运行脚本重新编写指定电子邮件的说明。我正在使用Outlook 2007

  • 下载并安装

  • 下载并安装

  • 将此代码放入文件中,并从
    cmd
    运行它:

  • import os, sys, re
    import win32com.client
    session = win32com.client.gencache.EnsureDispatch("MAPI.session")
    win32com.client.gencache.EnsureDispatch("Outlook.Application")
    outlook = win32com.client.Dispatch("Outlook.Application")
    #print '\n'.join(dir(outlook))
    mapi = outlook.GetNamespace('MAPI')
    inbox =  mapi.GetDefaultFolder(win32com.client.constants.olFolderInbox)
    items = inbox.Items
    #items.Restrict("[Unread] = true")
    #print '\n'.join(dir(items))
    while True:
        item = items.GetNext()
        if item == None: break
        #print '\n'.join(dir(item))
        if re.compile(r'crazy email').search(item.Subject):
            print item.Subject
            print item.Body
            # works VVVV
            item.Body = 'whoya!'
            item.Save()
            break
    

    这里有一个答案:这可能会帮助你。您可以制作一个简单的VBA脚本来触发python脚本。

    这里有一个答案:这可能会对您有所帮助。您可以制作一个简单的VBA脚本来触发python脚本。

    您可以参考一下如何在VBA中实现这一点吗?当您处于公司环境中,并且无法更改实际上包含某些优点的难看电子邮件的格式时,有时您必须在系统周围工作。这就是生活。你能谈谈如何在VBA中做到这一点吗?当你在一个公司环境中,你不能改变一封实际上包含一些优点的丑陋电子邮件的格式时,有时你必须在系统周围工作。生活就是这样,谢谢!我从未使用过ironpython,我只是认为这是您与outlook交互的方式。我通常使用CPython。@Ross与此同时,我读到尊敬的马克·哈蒙德(Mark Hammond)也参与了这个项目,特别是插件,所以它可能有点win32的酷:-)。Mark负责(C)Python与Windows的良好集成。谢谢!我从未使用过ironpython,我只是认为这是您与outlook交互的方式。我通常使用CPython。@Ross与此同时,我读到尊敬的马克·哈蒙德(Mark Hammond)也参与了这个项目,特别是插件,所以它可能有点win32的酷:-)。Mark负责(C)Python与Windows的良好集成。