C# 将多封邮件移动到其他存储中的文件夹

C# 将多封邮件移动到其他存储中的文件夹,c#,outlook-redemption,C#,Outlook Redemption,我正在将Outlook赎回库()用于我的Outlook加载项。我想将多封邮件从exchange帐户移动到PST存储 onlineAccountFolder.Items.MoveMultiple(onlineEntryIds, targetFolderInPstStore); 源文件夹邮件已从Exchange帐户中剪切,但未粘贴到目标文件夹中。他们走了 我对同一存储中的Exchange帐户文件夹尝试了相同的操作,移动操作成功。项目已移动到目标文件夹 “MoveMultiple”方法没有重载,我可

我正在将Outlook赎回库()用于我的Outlook加载项。我想将多封邮件从exchange帐户移动到PST存储

onlineAccountFolder.Items.MoveMultiple(onlineEntryIds, targetFolderInPstStore);
源文件夹邮件已从Exchange帐户中剪切,但未粘贴到目标文件夹中。他们走了

我对同一存储中的Exchange帐户文件夹尝试了相同的操作,移动操作成功。项目已移动到目标文件夹


“MoveMultiple”方法没有重载,我可以在其中定义StoreID。

使用类的
Move
方法在Outlook中的存储之间移动项目。

我对从OutlookSpy执行的以下脚本没有问题(单击OutlookSpy工具栏上的“脚本编辑器”按钮,粘贴脚本,单击运行)

脚本会将Outlook中选定的邮件移动到PickFolder方法返回的文件夹中。在PST和Exchange目标文件夹中都能正常工作

set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
dim messages()
set sel = Application.ActiveExplorer.Selection
redim messages(sel.Count-1)
for i = 1 to sel.Count
  messages(i-1) = sel.Item(i).EntryID
next
set targetFolder = Session.PickFolder
set sourceFolder = Session.GetFolderFromID(Application.ActiveExplorer.CurrentFolder.EntryID)
sourceFolder.Items.MoveMultiple messages, targetFolder

MoveMultiple
方法是否在同一个存储中正常工作?@EugeneAstafiev是的,移动操作在同一个存储中正常工作。恐怕您必须使用单个项目的
move
方法来正确移动项目。PST存储是否已在当前MAPI会话中打开?指定了多少个源条目ID?MoveMultiple只不过是围绕IMAPIFolder::CopyMessages(…,MESSAGE_MOVE)Thx的一个薄薄的包装器,用于您的响应—我已经想到了。我正在通过MAPITABLE(+filter)搜索文件夹中的所有邮件,只想移动其中的一部分。有没有一种方法可以在不完全加载RDOMail的情况下移动单个邮件项目?如果
MoveMultiple
方法在商店之间不起作用,则看起来没有。感谢您的支持-我再次检查了代码并修复了一些问题-可能某些配置错误,这就是移动操作不起作用的原因。现在有了所有的修复,一切都很好:-)顺便说一句,你的库速度快得惊人-做得好!!