【问题标题】:C# Outlook 2010 get FULL Global Address List InforamtionC# Outlook 2010 获取完整的全球地址列表信息
【发布时间】:2012-07-06 07:34:17
【问题描述】:

我有一个问题 - 我需要在我的机器上从 Outlook 2010 接收完整的全球地址列表。 我的意思是所有领域:

职称,"名","中间名","姓氏","后缀","公司","部门","职称","商业街","商业街 2","商业Street 3","Business City","Business State","Business Postal Code","Business Country/Region","Home Street","Home

如果我尝试从 Outlook 导出 GAL,我可以获得此列表。但是我如何通过 C# 做到这一点?

我正在尝试这样:

        Application oApp = new Application();
        NameSpace oNS = oApp.GetNamespace("mapi");
        oNS.Logon("Name", "Pass", false, true);
        AddressLists oDLs = oNS.AddressLists;
        AddressList oGal = oDLs["Global Address List"];            
        string sDL = "TestDL";
        AddressEntries oEntries = oGal.AddressEntries;
        AddressEntry oDL = oEntries[sDL];    
        oEntries = oDL.Members;
        AddressEntry oEntry = default(AddressEntry);    
        for (i = 1; i <= oGal.AddressEntries.Count ; i++  )
        {
            oEntry = oGal.AddressEntries[i];
            //listBox1.Items.Add(oEntry.Name);
        }

但每个 AddressEntries[i] 只包含姓名、电子邮件,没有其他内容。

【问题讨论】:

    标签: c# outlook exchange-server


    【解决方案1】:

    使用 AddressEntry.PropertyAccessor 检索任何可用的 MAPI 属性。 例如。要检索第一个名称,请检索 PR_GIVEN_NAME_W 属性 (= 0x3A06001F)。 查看带有 MFCMAPI 或 OutlookSpy 的地址簿对象,以了解可用的内容以及属性标签是什么。

    givenName = AddressEntry.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3A06001F")
    

    【讨论】:

    • 对不起,您能否用一点代码详细说明如何使用 PR_GIVEN_NAME_W。我什至不知道在哪里使用它。
    • 嗯,谢谢,我试过这个,但我得到了The property "http://schemas.microsoft.com/mapi/proptag/0x3A06001F" is unknown or cannot be found.
    • 但是有了这个 proptag - 0x800F101E 它可以工作。我得到了字符串数组。只有我不明白那里的任何价值。
    • 您是否查看了 OutlookSpy 中的 GAL 对象以查看可用的内容?点击 IAddrBook、Ope nRoot Container、GetHierarchyTable 等,下钻到任意条目。
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多