将Outlook电子邮件保存为文本文件,然后在其上运行脚本?

我正在使用Outlook 2007.我没有使用Windows编程或VBA的经验,因为我的所有背景都在Unix系统上。 我试图让Outlook保存每个传入的电子邮件作为文本文件,然后运行一个python脚本将parsing此文本文件。

我发现这个问题似乎提供了一些VBA代码来完成第一个任务,但我不知道如何利用它。 我打开Visual Basic编辑器,但不知道如何从那里继续。 我尝试将文本保存为模块,但是当我尝试在Outlook规则中添加“运行脚本”时,没有脚本可用。 我究竟做错了什么?

编辑:澄清。

Solutions Collecting From Web of "将Outlook电子邮件保存为文本文件,然后在其上运行脚本?"

我假设你熟悉一些编码,即使不在Windows上。 您可能需要在Outlook VBA上进行一些常规背景阅读; 有些资源是微软的文章 ,OutlookCode的这篇文章 ,等等 – 这里有大量的资源,包括演练和例子。

解决您的具体问题:看一下这篇Microsoft知识库文章 ,它介绍了如何从规则中触发脚本。

打开VBA编辑器后,开始使用的关键是双击左侧的模块,例如ThisOutlookSession (在“Microsoft Outlook对象”下)。 这应该给你一个编辑器,你可以粘贴代码。 请记住(根据上面的MS页面),你的过程必须接受一个MailItem对象,这个对象将是规则在手中的项目,所以你给出的链接示例将有第一对几行改变:

 Sub SaveEmail() Dim msg As Outlook.MailItem ' assume an email is selected Set msg = ActiveExplorer.Selection.Item(1) ' save as text [...] 

…至:

 Sub SaveEmail(msg As Outlook.MailItem) ' save as text [...] 

本质上,你正在交给一个MailItem,而不必创建它并将其连接到Outlook中的选定项目。

为了在文件上实现“运行脚本”的第二个任务,我假设你希望你的VBA在保存之后对文件进行修改? 在VBA中这很简单,你会发现很多的例子。 一个非常简单的轮廓是在这个答案 。

基于注释编辑:为了启动一个外部工具,如果你不需要等待它完成,你可以使用Shell命令,或者你可以使用浮动的多个Shell-and-wait实现之一这受欢迎的一个 。 或者,您可以在此答案中使用WScript方法。

请注意,您需要确保Outlook设置为允许运行宏 ,并且您可能需要签署代码 。