Eml to pst Redemption C# - >空例外RDOMail

时间:2015-03-16 11:33:32

标签: c# nullreferenceexception outlook-redemption eml pst

我正在尝试创建一个将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“)”中,系统给出了null异常。有谁可以帮助我?

2 个答案:

答案 0 :(得分:1)

您需要区分Outlook和Redemption对象。

看起来你需要使用Session类的GetRDOObjectFromOutlookObject方法(Redemption)。

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

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

答案 1 :(得分: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");