0

我正在尝试创建一个将 eml 文件转换为单个 pst 的程序。我写了那个命令:

RDOSession session = new RDOSession();
RDOPstStore store = session.LogonPstStore(newpstpath);
RDOFolder folder = store.IPMRootFolder.Folders.Item(directoryEmlFile);
RDOMail mail = folder.Items.Add("IPM.Note");

但是在命令“RDOMail mail = folder.Items.Add("IPM.Note")”下,系统给了我空异常。谁能帮我?

4

2 回答 2

1

您需要区分 Outlook 和 Redemption 对象。

看来您需要使用GetRDOObjectFromOutlookObjectSession 类(Redemption)的方法。

 set Session = CreateObject("Redemption.RDOSession")
 Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set redItem= Session.GetRDOObjectFromOutlookObject(mail)

Items 类的Add方法在文件夹的 Items 集合中创建并返回一个新的 Outlook 项目。

于 2015-03-16T13:49:41.787 回答
0

文件夹变量很可能为 null - 如果文件夹不存在,则按名称检索它 (RDOFolder.Folders.Item("foldername"))将返回 null:

RDOSession session = new RDOSession();
RDOPstStore store = session.LogonPstStore(newpstpath);
RDOFolder folder = store.IPMRootFolder.Folders.Item(directoryEmlFile);
if (folder == null) folder = store.IPMRootFolder.Folders.Add(directoryEmlFile);
RDOMail mail = folder.Items.Add("IPM.Note");
于 2015-03-18T05:42:46.870 回答