我正在使用Outlook 2007.我没有使用Windows编程或VBA的经验,因为我的所有背景都在Unix系统上。我试图让Outlook将每个传入的电子邮件保存为文本文件,然后运行一个python脚本来解析此文本文件。
我发现this问题似乎提供了一些VBA代码来完成第一项任务,但我不确定如何利用它。我打开Visual Basic编辑器,但不知道如何从那里继续。我尝试将文本保存为模块,但是当我尝试在Outlook规则中添加“运行脚本”时,没有可用的脚本。我做错了什么?
编辑:澄清。答案 0 :(得分:3)
我假设您熟悉某些级别的编码,即使不在Windows上也是如此。您可能想要在Outlook VBA上进行一些常规背景阅读;这方面的一些资源是来自OutlookCode的Microsoft article,this 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。