gpt4 book ai didi

java - 列出公用文件夹

转载 作者:行者123 更新时间:2023-11-30 06:47:47 25 4
gpt4 key购买 nike

我正在编写一个程序,用于将联系人从 ERP 系统导入到 Outlook。不同的电子邮件将收到来自 ERP 的不同联系人列表。这里的想法是,在每封电子邮件中我都有一个可供技术用户访问的公共(public)联系人文件夹。技术用户可以将联系人写入此文件夹。这是搜索文件夹的代码:

protected FolderId findFolderId(String folderDisplayName, String userEmail) throws Exception {
Mailbox userMailbox = new Mailbox(userEmail);
FolderId contactRootFolder = new FolderId(WellKnownFolderName.Root, userMailbox);

FolderId result = null;
FolderView view = new FolderView(Integer.MAX_VALUE);
view.setPropertySet(new PropertySet(BasePropertySet.IdOnly, FolderSchema.DisplayName));
view.setTraversal(FolderTraversal.Deep);
FindFoldersResults findFolderResults = this.service.findFolders(contactRootFolder, view);
//find specific folder
for (Folder f : findFolderResults) {
if (folderDisplayName.equals(f.getDisplayName())) {
result = f.getId();
}
}

return result;
}

服务对象创建如下:

this.service = new ExchangeService();
ExchangeCredentials credentials = new WebCredentials(userName, passWord);
this.service.setCredentials(credentials);

try {
this.service.setUrl(new URI(URL));
} catch (URISyntaxException e) {
LOGGER.error(e);
}

其中 URL 是 Exchange 服务器的端点(对于 Office 365,它是 https://outlook.office365.com/EWS/Exchange.asmx )。

该代码适用于 Office 2010,我从该文件夹获取 ID,连接到它并保存联系人。迁移到Office 365后,我们找不到公用文件夹。它只能找到一个名为“PeoplePublicData”的文件夹。 (我什至不知道该文件夹存在。)

最佳答案

Office365 中的限制意味着您的代码将仅返回邮箱中的前 1000 个文件夹,因此如果您要查找的内容不在该结果集中,这就是原因之一。我建议你摆脱

FolderView View =新的FolderView(Integer.MAX_VALUE);

并将其更改为

FolderView View =新的FolderView(1000);

然后分页结果https://msdn.microsoft.com/en-us/library/office/dn592093(v=exchg.150).aspx这将允许您获取邮箱中的所有文件夹。另外,除非您正在邮箱的 Non_IPM_Subtree 中查找某些内容,否则请使用 MsgFolderRoot 例如开始搜索

FolderId contactRootFolder = newFolderId(WellKnownFolderName.MsgFolderRoot, userMailbox);

这将减少返回的文件夹数量。

另外,为什么不使用 SearchFilter 来搜索您要查找的文件夹,例如 https://msdn.microsoft.com/en-us/library/office/dd633627(v=exchg.80).aspx这将消除对结果进行分页的需要,

关于java - 列出公用文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43371144/

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