2014-09-01 137 views

回答

2

要在Outlook中创建新文件夹,请使用MAPIFolder.Folders.Add。

Outlook对象模型不直接支持导入EML或MSG文件(或任何其他文件)。

味精的文件,您可以

  1. 使用扩展MAPI(C++或Delphi oinly)和OpenIMsgOnIStg函数打开一个文件味精。然后,您可以在目标文件夹中创建新消息,并使用IMesage.CopyTo复制属性(请记住,独立MSG文件不能正确处理CopyTo中的命名属性),或者一次读取一个属性,并将它们设置为目标消息明确。

  2. Outlook对象模型可以使用Application.CreateItemFromTemplate(它将以未发送状态创建)并使用Namespace.OpenSharedItem打开MSG文件。然后,可以将消息(MailItem.Move)移动到目标文件夹

对于EML文件,您可以

  1. 使用扩展MAPI(C++或仅德尔福)和内置Outlook界面(IComverterSession)。您可以在OutlookSpy(点击IConverterSession按钮)中使用该界面进行游戏。

  2. Outlook对象模型根本不支持EML文件。你可以做的最好的是创建你自己的解析器,并且一次将EML文件复制到Outlook中一个MIME头/部分。

如果使用Redemption是一个选项,你可以使用RDOMail .IMPORT方法 - 它进口MSG(olMsg)和EML(olRfc822)文件(以及一些其他格式)。

set Session = CreateObject("Redemption.RDOSession") 
    Session.MAPIOBJECT = Application.Session.MAPIOBJECT '//or you can call Logon 
    set Inbox = Session.GetDefaultFolder(olFolderInbox) 
    set Msg = Inbox.Items.Add 
    Msg.Sent = true '//since Import does not copy this property 
    Msg.Import("c:\temp\test.eml", 1024) ' //1024 is olRfc822 
    Msg.Save 
+0

神奇深入的答案,非常感谢!我会检查你的资源,然后回去.. – 2014-09-01 17:58:07

相关问题