使用Redemption以编程方式访问“脱机通讯簿”

时间:2010-02-20 05:08:45

标签: c# outlook-redemption

如何使用Redemption dll(C#)访问“脱机通讯簿”(从Exchange服务器/ outlook配置到交换机)。

我正在寻找一些示例代码来继续我的任务。

3 个答案:

答案 0 :(得分:2)

试试这个。我正在使用Redemption 4.6。我创建了一个表单并添加了一个DataGridView用于查看结果。这是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace TestingJojoWinForms
{
public partial class frmRedemption : Form
{
    public frmRedemption()
    {
        InitializeComponent();
    }

    private void frmRedemption_Load(object sender, EventArgs e)
    {
        DataTable dtResult = new DataTable("Result");
        dtResult.Columns.Add("EntryID");
        dtResult.Columns.Add("FirstName");
        dtResult.Columns.Add("LastName");
        dtResult.Columns.Add("Alias");
        dtResult.Columns.Add("SMTPAddress");
        dtResult.Columns.Add("JobTitle");
        dtResult.Columns.Add("Address");
        dtResult.Columns.Add("StreetAddress");

        Redemption.RDOSessionClass session = new Redemption.RDOSessionClass();
        session.Logon(@"your_account_name", "your_password", false, false, 0, false);
        for(int index = 1; index <= session.AddressBook.GAL.AddressEntries.Count; index++) 
        {
            Redemption.RDOAddressEntryClass entry = (Redemption.RDOAddressEntryClass)session.AddressBook.GAL.AddressEntries.Item(index);
            dtResult.Rows.Add(entry.EntryID, entry.FirstName, entry.LastName, entry.Alias, entry.SMTPAddress, entry.JobTitle, entry.Address, entry.StreetAddress);
        }
        session.Logoff();

        this.dataGridView1.DataSource = dtResult;
    }


}
}

结果如下: alt text http://www.freeimagehosting.net/uploads/b46bb6d3a1.jpg

答案 1 :(得分:0)

很抱歉这不是一个答案,但是我会把Dmitry Streblechenko(Redemption图书馆的开发者)发送一封电子邮件 - 他总是很快回复并且很有帮助。

他的电子邮件地址位于兑换网站:http://www.dimastr.com/redemption/

答案 2 :(得分:0)

在你的问题中更具体一点是有帮助的。

“脱机通讯簿”由Outlook自动管理为Exchange全局地址列表的缓存副本,请参阅KB article

如果您需要访问地址簿的元素,请使用Redemption中的SafeContact对象。 Oulook缓存联系信息的事实应该对用户透明。

关于脱机通讯簿,Outlook的UI中没有太多工作要做。您的问题是否意味着以编程方式触发地址簿的更新?例如,在Outlook 2010中,在发送/接收选项卡中,发送和接收;接收组,发送/接收组下拉列表,下载地址簿?