使用Microsoft Outlook 2013对象模型(MailItem.Move)将邮件以编程方式从Hotmail收件箱移动到相同 Hotmail / Outlook.com中的文件夹时store,此方法失败并显示错误消息:
Sorry, ActiveSync doesn't support what you're trying to do
但是,手动将同一条消息拖到同一个文件夹中工作正常!
我知道 - 通过设计 - Outlook的EAS提供程序无法将邮件项目从外部(如.PST商店)移动到Hotmail文件夹中,因为这违反了" no import"限制Hotmail。
但是这里的这种特殊行为不能用这种方式解释,因为在那种情况下它不应该能够支持手动拖动和放大器。放下案例!将任何内容导入Hotmail也没有任何关系,因为该项目仅在单个Hotmail商店中的文件夹之间移动。
所以我想知道:这是设计还是错误? 也许是一种解决方法?
(这假定安装了OutlookSpy - 但使用基本的VSTO加载项也很容易模拟
将hotmail / outlook.com帐户添加到Outlook个人资料中
在hotmail / outlook.com收件箱中创建一个子文件夹
在hotmail / outlook.com收件箱中的邮件项目上的位置
单击OutlookSpy功能区选项卡
单击OutlookSpy功能区中的“项目”按钮
单击MailItem对话框中的“脚本”选项卡
输入以下脚本并按Run:
set inbox = MailItem.Parent
set childfolder = inbox.Folders.item(1)
MailItem.Move childFolder
注意:这是在MS Outlook 2013,v15.0.4693.1001(32位)中观察到的
答案 0 :(得分:0)
如果不支持移动,则Outlook不会移动邮件 - 它会在目标文件夹中创建邮件,复制所有属性,然后删除原始邮件。尝试以下内容:
set inbox = MailItem.Parent
set childfolder = inbox.Folders.item(1)
set NewMessage = MailItem.Copy
NewMessage.Move childFolder
'MailItem.Delete
或者您可以尝试使用Redemption及其RDOMail。CopyTo方法(它可以使用另一个RDOMail对象或RDOFolder对象作为参数):
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set OldMsg = Session.GetMessageFromID(Application.ActiveExplorer.Selection(1).EntryID)
set childfolder = Session.GetDefaultFolder(olFolderInbox).Folders.item(1)
debug.print childfolder.name
set newMsg = childfolder.Items.Add
newMsg.Sent = OldMsg.Sent 'it is not copied
OldMsg.CopyTo(newMsg)
newMsg.Save
OldMsg.Delete