gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 14:23:26 26 4
gpt4 key购买 nike

我正在使用雅各布库。使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com