0

我正在寻找一种以编程方式 (.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#)来说明如何访问私人邮箱的联系人文件夹(或子文件夹),以在那里编写新的联系人项目?

4

2 回答 2

0

如果您尝试从 .Net 执行此操作,那么您可能需要使用 Outlook 对象,如MSDN 上的 Using MAPI to Create Outlook 2007 Items 一文的结论中所述。CDO 和 RDO 旨在与 VBscript 和其他非托管代码一起使用。

使用此方法,您将使用 C# 在给定邮箱中利用 Outlook 2007(或更好的)自动化。是的,它需要一个对目标邮箱具有适当访问权限的帐户,并且您必须遍历邮箱并自己导航文件夹树。

他们给出的例子是这样的:

private void AddContact()
{
    try
    {
        Outlook.ContactItem oContact =
            Application.CreateItem(
            Outlook.OlItemType.olContactItem)
            as Outlook.ContactItem;
        oContact.FirstName = "Jacqueline";
        oContact.LastName = "Haddad";
        oContact.Initials = "J.H.";
        oContact.CompanyName = "Microsoft";
        oContact.Email1Address = "someone@example.com";
        oContact.Email1AddressType = "SMTP";
        oContact.Email1DisplayName =
            "Jacqueline Haddad (someone@example.com)";
        oContact.BusinessAddressStreet = "1 Microsoft Way";
        oContact.BusinessAddressCity = "Redmond";
        oContact.BusinessAddressState = "WA";
        oContact.BusinessAddressPostalCode = "95802";
        oContact.BusinessAddressCountry = "USA";
        oContact.BusinessTelephoneNumber = "800-555-1212";
        oContact.WebPage = "http://www.codeplex.com/mfcmapi";
        oContact.Body = "This is a sample note.";
        oContact.Save();
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.Message);
    }
}
于 2015-07-28T18:55:16.753 回答
0

[从评论中推荐]

完全独立会出现问题,但请查看Redemption Data Objects,它公开了 Outlook 使用的 CDO/RDO 机制。它确实需要安装 Outlook,但不需要运行它(它使用库,但不能通过自动化 Outlook 来工作)。

我们最近开始使用 RDO,并且获得了比 EWS 更好的性能。

即使您不使用它,也可以从同一家公司获取OutlookSpy的(免费)副本。它将公开很多关于 Exchange 如何在内部工作的信息,尤其是使用的数据结构(它向 Outlook 添加了一个工具栏,它不是独立的)。

于 2015-07-28T20:15:08.700 回答