使用 MAPI 从 Exchange 服务器检索邮件

发布于 2024-07-19 05:22:23 字数 143 浏览 9 评论 0原文

我正在为 Exchange Server 邮件存档器做后台工作。 我打算使用 C# 来实现。 谁能告诉我如何开始。 我可以获得一个示例应用程序来说明如何使用 MAPI 从交换服务器读取邮件。 由于 MAPI 是一个 Cpp dll,我可以获得一个 C# 包装器吗?

I'm doing background work for an Exchange Server Mail Archiver. I'm planning to do it using C#. Can anyone give some idea how to start off. Can I get a sample application which illustrates how MAPI can be used to read mails from exchange server.
Since MAPI is a Cpp dll, can I get a C# wrapper for the same.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

撩动你心 2024-07-26 05:22:23

不支持从托管代码使用 MAPI,应避免使用。 如果您是从头开始,我会考虑 EWS(Exchange Web 服务)并设计您的产品以支持 Exchange 2007 和 Exchange 2010。

Using MAPI from managed code is not supported and should be avoided. If you're starting from scratch, I'd look at EWS (Exchange Web Services) and design your product to support Exchange 2007 and Exchange 2010.

最美不过初阳 2024-07-26 05:22:23

如果您确实需要采用扩展 MAPI 路线(就像我们在之前的工作中所做的那样),我首先建议您使用纯 C++ 进行操作,并根据您的需要制作自己的自定义包装器。 您不想在托管代码中直接与 MAPI 交互,

我还建议阅读 http://blogs.msdn。 com/stephen_griffin/
他基本上是 MS 的 MAPI 大师。

如果你去那里的话祝你好运

If you really need to go the Extended MAPI route (like we had to in my previous job) i would first advise you to do it in plain C++ and do your own custom wrapper for what you need. You do not want to interface directly with MAPI in managed code

I would also suggest reading http://blogs.msdn.com/stephen_griffin/
He is basically the MAPI guru at MS.

Good luck if you go there

薄暮涼年 2024-07-26 05:22:23

我意识到你发布这篇文章已经有几个月了,但为了后代 - 试试这个:
兑换

I realize it has been a couple months since you've posted this, but for posterity - try this:
Redemption

撩动你心 2024-07-26 05:22:23

您确实不想使用 MAPI C# 包装器。 在测试中这没什么问题,但由于 .NET 和 MAPI dll 偶尔会管理自己的内存(读取 300 个用户,每小时多次),它们会覆盖彼此的内存池。

最后,我们最终编写了一个 VB6 应用程序,它接受一个文件参数以及我们想要发送的内容,然后用 C# 编写一个文件并调用 vb6 应用程序。 这是有效的,因为它们是单独的进程,因此不会覆盖彼此的内存池。

我给你的建议是不要走mapi路线(除非你喜欢痛苦),如果可能的话使用EWS(我们不能这样做,因为公司不想升级)。

You really don't want to use the MAPI C# wrapper. It will be okay in testing, but as .NET and the MAPI dll manage their own memory occasionally (read 300 users, many times an hour) they will overwrite each others memory pools.

In the end we ended up writing a VB6 app that took in a file argument with what we wanted to send, and then wrote a file in c# and called the vb6 app. This works as they are separate processes and thus don't overwrite each others memory pools.

My advice to you is to not go down the mapi route (unless you enjoy pain), and if possible use EWS (we cannot do this due to the company not wanting to upgrade).

一笑百媚生 2024-07-26 05:22:23

确实,使用 C# 包装器几乎是不可能的,但在 C++.NET 中编写包装器是非常可行的。 我们用 C++.NET 编写了自己的 MAPI 包装器,并从 C# 中使用。 效果很好

托马斯,ComArchive,

It’s correct that using a C# wrapper would be nearly impossible, but writing a wrapper in C++.NET is very doable. We have written our own MAPI wrapper in C++.NET and utilized from C#. It’s working great

Thomas, ComArchive

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文