基于Outlook规则执行PHP脚本

时间:2010-01-12 10:43:41

标签: php windows outlook outlook-vba

我通过电子邮件获取每日数据转储,这是由Access处理的(基于Outlook规则,VBA正在提取附件并运行Access程序,因此我收到报告)。

随着数据转储越来越大,并且考虑到本地运行Access会消耗我的资源,我想设置一个PHP / MySQL服务器以提高效率。

我面临的第一个挑战是如何将Outlook规则与PHP执行连接? (因为我将在基于Windows的机器上设置Outlook,并设置apache / mysql(WAMP))

任何人都可以分享一些关于如何从Outlook启动PHP执行的见解?

感谢您的帮助!

斯尔詹

1 个答案:

答案 0 :(得分:1)

如果你有一个使用Access和VBA的现有设置,并且你只需要一个更好的数据库,那么你不能只使用没有PHP的MySQL并使用MySQL ODBC驱动程序而不是你目前使用的Access连接(假设您当前正在使用ODBC连接到访问数据库)

这样,如果本地计算机上的命中率过高,你甚至不必让mysql在本地运行,并且它应该非常简单,因为你不必对你的vba代码进行很多更改。 / p>

当然,这是否会这样做取决于您的访问数据库中还有其他内容

如果没有,您可以尝试使用PHP并使用PHP命令行界面(CLI),您应该能够从Outlook调用外部可执行文件。只需传递php.exe您要运行的php脚本的名称

更新:

我不是VBA专家,但看起来shell函数可以让你从VBA中运行PHP CLI

Shell("path/to/php.exe phpscript.php")

http://msdn.microsoft.com/en-us/library/xe736fyk(VS.71).aspx

当然,这只有在你可以使用wamp机器上的php.exe(即本地机器或你有相应文件夹的网络访问权限)时才有效。

或者,如果Wamp服务器是一台单独的机器,那么您可以通过调用url来触发php脚本。我认为XMLHTTP对象会为你做这个

Dim xmh As Object

Set xmh = CreateObject("MSXML2.XMLHTTP") 
xmh.Open "GET", "http://urlofphpserver/script.php", False
xmh.Send