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

时间:2013-07-17 15:09:18

标签: windows vba outlook

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

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

编辑:澄清。

1 个答案:

答案 0 :(得分:3)

我假设您熟悉某些级别的编码,即使不在Windows上也是如此。您可能想要在Outlook VBA上进行一些常规背景阅读;这方面的一些资源是来自OutlookCode的Microsoft articlethis article,依此类推 - 那里有大量的资源,包括演练和示例。

解决您的具体问题:查看this Microsoft KB article,其中介绍了如何从规则触发脚本。

一旦打开VBA编辑器,启动的关键是双击左侧的模块,例如ThisOutlookSession(在“Microsoft Outlook Objects”下)。 这应该给你一个编辑器,你可以粘贴代码。请记住(根据上面的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中非常简单,你会发现很多例子。一个非常简单的大纲是this answer

根据评论进行编辑:以启动外部工具,如果您不需要等待它完成,您可以使用Shell命令,或者您可以使用一个众多Shell-and-wait实现中存在的问题,例如this popular one。或者,您可以在this answer中使用WScript方法。

请注意,您需要ensure Outlook is set to allow macros to run,并且您可能希望sign your code

相关问题