2013-03-08 84 views
0

我正在處理一個涉及解析.pst文件的C#項目,我的團隊已經選擇使用Redemption庫來這樣做。我們已經成功地將電子郵件文件解析爲RDOMail對象,但現在我們要將這些電子郵件的子集寫入新的.pst文件。我已經使用email.SaveAs()函數成功地將子集寫入了.eml文件,但是我不知道如何將該列表另存爲.pst。我一直在瀏覽文檔,但是它有很多不足之處。任何使用過Redemption的人都可以指出我正確的方向或提供示例嗎?在此先感謝您的幫助!使用Redemption創建一個pst文件

回答

0

您將需要使用RDOSession.Stores.AddPstStore創建/打開PST文件(返回RDOPSTStore對象)。一旦你有了商店,你可以打開/創建文件夾(從RDOStore.IPMRootFolder開始),創建消息(RDOFolder.Items.Add)並將舊消息複製到新消息(RDOMail.CopyTo(RDOMail/RDOFolder))。

+0

Thanks!這解決了我的問題。 :) – tbdavis 2013-03-09 18:33:13

+0

嗨@Dmitry,我遇到了將RDOMail對象保存到RDOFolder對象的問題。你可以看看我的帖子: http://stackoverflow.com/questions/30407435/redemption-cannot-add-item-to-folder – Freestyle076 2015-05-26 15:09:56

1

我一直在努力的最後幾個小時,這樣做,想保存時間給別人

您必須安裝redemption並將其添加爲你的項目的引用,它的工作

  RDOSession session = new RDOSession(); // throws exception 1 

     session.LogonPstStore(@"c:\temp\output.pst"); 
     RDOFolder folder = session.GetDefaultFolder(rdoDefaultFolders.olFolderInbox); 

     string[] fileEntries = Directory.GetFiles(@"C:\emlFiles\", "*.eml"); 


     foreach (string filePath in fileEntries) 
     { 
      RDOMail mail = folder.Items.Add("IPM.Mail"); 
      mail.Sent = true; 
      mail.Import(filePath, 1024); 
      // folder.Items.Add(mail); 
      mail.Save(); 
     } 

     session.Logoff(); 

I also created a small sample windows forms app for it, I know the code is ugly but it does the trick