关于 .net:侦听来自 Exchange 服务器的传入电子邮件

Listening for incoming emails from an Exchange Server

Microsoft Exchange 服务器上有一个电子邮件帐户(或可能有多个帐户)。我想从 .Net 应用程序注册/附加到 Exchange,以便接收来自该帐户的电子邮件。从那里的想法是电子邮件可以存档在文件系统或数据库上,索引等。

理想情况下,此代码应适用于旧版本和最新版本的 Exchange。

我也对该问题的任何第三方解决方案感兴趣。

谢谢。


我认为 WCF Exchange Server 邮件传输或 Exchange Web 服务是您最好的选择。您将很难找到适用于 Exchange 2007 和更早版本且不涉及直接使用 MAPI 或 CDO 进行编程的解决方案。


目前的发现:

WCF Exchange Server 邮件传输需要 Exchange 2007。

消息应用程序编程接口 (MAPI) 看起来是一个不错的选择。但乍一看,它似乎是一个相对较低级别的 API,因此我担心要使 MAPI 解决方案达到高标准所需的工作量。使用 MAPI 购买相对便宜/简单的第三方解决方案可能更可取。

IMAP4.可以在非交换服务器上使用使用 IMAP 的解决方案。我对此没有要求,但如果它是一个很好的解决方案,那么非交换是一个不错的功能。同样,关注低级 API,因此倾向于第三方解决方案。


如果您只需要支持 Exchange 2007SP1 或 2010,我建议您使用 Exchange Web Services 托管 API。使用推送通知来监控传入的电子邮件。它的效率很高,可以同时监控数百个邮箱。

如果您还需要支持 Exchange 2003,您可以在邮箱上启用 IMAP,并使用 IDLE 命令作为准实时方式来检查新电子邮件。