我正在为 Exchange Server Mail Archiver 做后台工作。我打算用 C# 来做。谁能给一些想法如何开始。我能否获得一个示例应用程序来说明如何使用 MAPI 从 Exchange 服务器读取邮件。由于 MAPI 是一个 Cpp dll,我可以得到一个 C# 包装器。
5 回答
如果您真的需要使用扩展 MAPI 路线(就像我们在以前的工作中必须做的那样),我会首先建议您使用纯 C++ 进行此操作,并根据您的需要做您自己的自定义包装器。您不想在托管代码中直接与 MAPI 交互
我还建议阅读http://blogs.msdn.com/stephen_griffin/ 他基本上是 MS 的 MAPI 大师。
如果你去那里祝你好运
我意识到你已经发布了几个月了,但是为了后代 - 试试这个: 救赎
不支持从托管代码使用 MAPI,应避免使用。如果您从头开始,我会考虑 EWS(Exchange Web 服务)并设计您的产品以支持 Exchange 2007 和 Exchange 2010。
您真的不想使用 MAPI C# 包装器。在测试中没问题,但由于 .NET 和 MAPI dll 偶尔会管理自己的内存(读取 300 个用户,每小时多次),它们会覆盖彼此的内存池。
最后,我们最终编写了一个 VB6 应用程序,该应用程序接受了我们想要发送的文件参数,然后用 c# 编写了一个文件并调用了 vb6 应用程序。这是有效的,因为它们是独立的进程,因此不会覆盖彼此的内存池。
我对你的建议是不要走 mapi 路线(除非你喜欢痛苦),如果可能的话使用 EWS(由于公司不想升级,我们不能这样做)。
使用 C# 包装器几乎是不可能的,这是正确的,但是在 C++.NET 中编写包装器是非常可行的。我们在 C++.NET 中编写了自己的 MAPI 包装器,并从 C# 中使用。它工作得很好
托马斯,ComArchive