如何根据规则在 Exchange 上启动服务器端进程

如何根据规则在 Exchange 上启动服务器端进程

我想向一个帐户发送一封邮件,并在收到邮件后在服务器上启动一个使用邮件中参数的进程。可以在 Exchange 中执行此操作吗?类似于“shellExecute c:\someprocess.ps message.body”

我已经看过了运输规则但它们似乎不允许启动外部进程。

(我也知道这可能是不可能的,因为它打开了一个漏洞载体)

答案1

自定义 Exchange 传输代理可以满足您的要求(但您必须付钱请人来编写代码)。我将在底部附上一些链接。

您可能最好按照 Maxwell 和 Sam Cogan 的建议去做,只需轮询邮箱并根据邮箱内容触发事件。Microsoft索赔Exchange 2007 IMAP 支持 IDLE 命令(请参阅http://technet.microsoft.com/en-us/library/cc540463.aspxhttp://www.ietf.org/rfc/rfc2177.txt有关 IDLE 的背景知识),这样,理论上,Exchange 可以向 IMAP 客户端“推送”新电子邮件通知(从而消除 IMAP 客户端中的轮询)。

我认为我会选择 IMAP 客户端(带或不带 IDLE)的路线,这样如果扩展成为一个问题,您可以轻松地将客户端进程移动到另一台服务器计算机,这样您就不会“绑定”到 Exchange,您应该决定在将来跳转到不同的邮件服务器平台,或者微软应该决定(就像他们以前做过很多次一样)弃用传输代理使用的 API。

如果您愿意勇敢地编写一个传输代理,请看一下:

答案2

我通常使用 python 脚本执行此类任务,通过 IMAP 检查邮箱中是否有包含指定模式的新邮件。可能会让您以这种方式开始。您可以进一步使用 py2exe“编译”您的脚本并将其作为服务运行。

答案3

据我所知,没有办法让 exchange 触发外部进程。相反,最好的办法是让脚本定期检查邮箱,然后执行脚本。如果您可以挂接到 activesync,您可能可以在推送通知上执行此操作。

相关内容