如何使用 Redemption dll (C#) 访问“离线通讯录”(从配置为交换机器的交换服务器/outlook)。
我正在寻找一些示例代码来继续我的任务。
如何使用 Redemption dll (C#) 访问“离线通讯录”(从配置为交换机器的交换服务器/outlook)。
我正在寻找一些示例代码来继续我的任务。
试试这个。我正在使用救赎 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;
}
}
}
抱歉,这不是一个很好的答案,但我会给 Dmitry Streblechenko(Redemption 库的开发人员)发一封电子邮件——他总是很快回复并且非常乐于助人。
他的电子邮件地址在 Redemption 网站上:http ://www.dimastr.com/redemption/
在您的问题中更具体会有所帮助。
Outlook 自动将“脱机通讯簿”作为 Exchange 全局地址列表的缓存副本进行管理,请参阅知识库文章。
如果您需要访问地址簿的元素,请使用 Redemption 中的 SafeContact 对象。Oulook 缓存联系信息的事实对用户应该是透明的。
在 Outlook 的 UI 中,关于脱机通讯簿的工作并不多。您的问题是否意味着以编程方式触发地址簿的更新?比如,在 Outlook 2010 中,在发送/接收选项卡中,发送和接收组,发送/接收组下拉列表,下载地址簿?