【发布时间】:2015-06-08 19:51:06
【问题描述】:
我正在寻找一种以编程方式 (.Net) 访问 Exchange 2003 服务器上的 PRIVATE 联系人文件夹的方法,以创建用于从数据库创建联系人的子文件夹。
到目前为止,我发现的解决方案依赖于 EWS,例如https://social.msdn.microsoft.com/Forums/en-US/aec6c998-f304-439c-9fa7-27bb9a4c4b45/problem-accessing-folders-in-another-mailbox?forum=exchangesvrdevelopment - 此类示例适用于 2007+,我必须针对的 Exchange 服务器是 2003。
其他示例是 Outlook 插件。
我需要一个独立的解决方案(可执行文件),每次运行时,它都会将数据库中的联系人创建到用户联系人文件夹下的特定子文件夹中。
我还搜索了一些 MAPI 代码示例 (.Net),但运气不佳。
您能否提供代码(VB.NET 或 C#)来说明如何访问私人邮箱的“联系人”文件夹(或子文件夹),以便在那里编写新的联系人项目?
【问题讨论】:
-
完全独立会有问题,但请查看 Redemption Data Objects,它公开了 Outlook 使用的 CDO/RDO 机制。它确实需要安装 Outlook,但不需要运行它(它使用库,它不会自动化它)。我们最近开始使用它,并且获得了比 EWS 更好的性能。 dimastr.com/redemption/rdo_introduction.htm 即使您不使用它,也可以获取 OutlookSpy 的(免费)副本,它会公开大量有关 Exchange 内部工作方式的信息(向 Outlook 添加工具栏)
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
@John Saunders:感谢您为执行合规所做的努力。在我的特殊情况下,我觉得从标题中删除的“.Net”对于强调我不需要接收 C++/java 等解决方案,而只需要接收 .Net 是必不可少的。我想有些人可能会因为“.net”标签而认为这很明显。除非另有明确说明,否则标签是否具有“仅”异或“很高兴”的含义?
-
由于您使用了 .NET 标签,任何人都会错误地给您一个 Java 或 C++ 答案。
-
我认为我首先应该问的问题是:“是否可以使用 Outlook 互操作将联系人项目写入另一个用户的邮箱,在他们的联系人文件夹下的子文件夹中,前提是我的用户拥有其他用户邮箱的完全权限?”请随时回复。谢谢:-)