2008-10-21 74 views
5

我的公司要求我將Outlook用於我的電子郵件。展望幾乎沒有任何方式,我想這樣做,它讓我非常失望。 (我不是想在這裏開始一場激烈的戰爭,它必須完成數千名首席執行官所希望的事情,但我不是首席執行官。)保存/整理/搜索Outlook以外的Outlook電子郵件

我希望能夠自動提取數千的電子郵件和附件目前在我的Outlook帳戶中,並將它們保存在我自己的備用存儲格式中,我可以輕鬆地搜索並按照自己的方式進行組織。 (我沒有請求新格式的建議。)

也許一些很好的開源程序已經可以做到這一點...那將是偉大的。請告訴我。

否則我怎樣才能獲得消息內容和附件,而無需手動通過巨大的收集?即使我只能得到郵件內容和附件的名稱,這就足夠了。是否有Outlook郵件存儲格式的文檔?有沒有辦法查詢Outlook的數據?

也許有一種替代方法我沒有考慮過?

我的首選語言是C#,但如果需要,我可以使用其他語言。

回答

6

Outlook Redemption是目前使用我找到的最好的東西。它將允許您進入消息並提取附件和消息主體。我現在正在使用它來做到這一點。

這是我在課堂上使用的一些代碼。我包含了構造函數和用於保存附件的處理函數。我刪除了特定於我的需求的代碼,但您可以瞭解在此使用的代碼。

private RDOSession _MailSession = new RDOSession(); 
    private RDOFolder _IncommingInbox; 
    private RDOFolder _ArchiveFolder; 
    private string _SaveAttachmentPath; 

    public MailBox(string Logon_Profile, string IncommingMailPath, 
        string ArchiveMailPath, string SaveAttPath) 
    { 
     _MailSession.Logon(Logon_Profile, null, null, true, null, null); 
     _IncommingInbox = _MailSession.GetFolderFromPath(IncommingMailPath); 
     _ArchiveFolder = _MailSession.GetFolderFromPath(ArchiveMailPath); 
     _SaveAttachmentPath = SaveAttPath; 
    } 
public void ProcessMail() 
     { 

      foreach (RDOMail msg in _IncommingInbox.Items) 
      { 
       foreach (RDOAttachment attachment in msg.Attachments) 
       { 
        attachment.SaveAsFile(_SaveAttachmentPath + attachment.FileName); 
        } 
       } 
       if (msg.Body != null) 
       { 
        ProcessBody(msg.Body); 
       } 

      } 

     } 

編輯: 這是我怎麼稱呼它,什麼是通過

MailBox pwaMail = new MailBox("Self Email User", @"\\Mailbox - Someone\Inbox", 
           @"\\EMail - Incomming\Backup", @"\\SomePath");