java - 使用 jacob 库删除和更新 Outlook 联系人

标签 java outlook jacob

我正在使用雅各布库。使用 jacob 库并遵循 this教程我可以在 Outlook 中添加联系人。现在我想使用 jacob 删除并更新该联系人。我想知道有什么方法可以使用 jacob 删除 Outlook 联系人。

我正在使用此代码在 Outlook 中添加联系人。这里的电子邮件 ID 是唯一的 ID。

        ActiveXComponent axOutlook = new ActiveXComponent("Outlook.Application");
        Dispatch oOutlook = axOutlook.getObject();
        Dispatch createContact = Dispatch.call((Dispatch)oOutlook, "CreateItem", new Variant(2)).toDispatch();

        Dispatch.put(createContact,"LastName",cont.getLastName());
        Dispatch.put(createContact,"FirstName",cont.getFirstName());
        Dispatch.put(createContact,"Title",cont.getTitle());
        Dispatch.put(createContact,"Email1Address",cont.getPrimaryEmail());

        Dispatch.call(createContact, "Save");

最佳答案

JACOB 是 COM IDispatch 调用的一个非常薄的包装器,因此,如果您想知道如何在 Outlook 中执行任何特定任务,可以从官方的 Outlook Object Model documentation 开始。

您的特定情况(查找和删除联系人)是通过

执行的
namespace = outlookApplication.GetNamespace("MAPI")
contactsFolder = namespace.GetDefaultFolder(olFolderContacts)
contact = contactsFolder.items.find( "[Email1Address] = 'mail@server.com' )

if (contact != null)
{
    contact.Delete
}

工作的后半部分是将这些调用翻译成雅各布语。假设您已找到联系人项目,代码将类似于

ActiveXComponent outlookApplication = new ActiveXComponent("Outlook.Application");
Dispatch namespace = outlookApplication.getProperty("Session").toDispatch();

Dispatch contactsFolder = Dispatch.call(namespace, "GetDefaultFolder", new Integer(10)).toDispatch();
Dispatch contactItems = Dispatch.get(contactsFolder, "items");
String filter = String.format("[Email1Address] = '%s'", cont.getPrimaryEmail());
Dispatch contact = Dispatch.call(contactItems, "find", filter);

if (contact != null)
{
    Dispatch.call(contactItem, "Delete");
}

关于java - 使用 jacob 库删除和更新 Outlook 联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17361340/

相关文章:

java - 子类中带有注释的Aspectj切入点方法

java - Java 中的对象到 boolean 值转换

java - 如何打印包含学生姓名和学生 ID 的数组列表?

c# - 在 Outlook 上下文菜单操作中读取 "active"邮件消息?

vba - 从 Excel 发送电子邮件时的多行电子邮件正文

java - 使用 Java 进行语音采样

java - 如何从 Java 中的字符串中删除\u200B(零长度空白 Unicode 字符)?

java - JACOB 和 64 位 JVM - 它有效吗?

java - com4j 与 jacob 从 Java 调用 COM 方法

java - 使用 COM 和 Java 在 iTunes 中创建播放列表