我正在尝试创建一个将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异常。有谁可以帮助我?
答案 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");