題:
批量導出Outlook電子郵件,並清理Microsoft垃圾HTML
hunterhogan
2014-12-27 00:20:12 UTC
view on stackexchange narkive permalink

我的最終目標是從Outlook 2007導出數千封電子郵件,其格式允許我將其發佈到WordPress支持的網站上。

更新: 這個問題需要多個步驟來解決,但是我遇到的主要絆腳石是我找不到從成千上萬個odfemail中批量刪除MicroSoft糟糕的HTML的方法。 >

但是,我不希望有一種工具可以完成。目前的主要障礙是找到一種以我可以操縱的格式導出數千封電子郵件的方法。

由於我們都知道起始數據文件(Outlook)的外觀,因此查看在此頁面上查看最終產品的外觀。

有很多出色的方法可以將數據導入WordPress。我已經多次使用真正簡單的CSV導入器,它應該可以滿足我的需要。

有很多用於導出電子郵件的工具,但我還沒有找到一種可以對所有人有效的工具。我的郵件。在Outlook中,有一個導出功能,但是文件格式都不可接受。

最好的工具之一是宏(一組宏,實際上)可以導出我需要的所有數據,但存在一些問題。該宏可以輕鬆導出純文本消息或將HTML消息轉換為純文本,但是在將HTML消息導出為HTML時,該消息中包含Microsoft的所有垃圾HTML。額外的HTML元素和屬性與我的網站標記衝突,因此我無法直接使用該宏。我嘗試過修改它,但是失敗了。

有趣的是,WordPress非常擅長清理Microsoft的垃圾HTML。但是,我只知道如何通過將文本粘貼到WordPress的“可視編輯器”中來觸發該功能。顯然,我無法處理數千封電子郵件。

我已經嘗試了一些現成的軟件,但是它們都有我無法克服的局限性。如上所述,一個主要問題是導出的電子郵件保留了Microsoft糟糕的HTML。有時問題是正文導出得很好,但是“收件人”,“發件人”,“主題”和“日期”字段丟失了。

最後一個障礙,也是一個重要的障礙,那就是成本。我沒有工作,所以我買不起某些產品的249美元價格標籤。當然,免費是最好的選擇,但是如果一款產品真的很棒,那麼我可能可以負擔得起20美元。

謝謝您的時間。

在線或離線存儲數據的位置(交換服務器或脫機存儲表文件或其他位置)?
您在這裡使用什麼版本的Outlook?
脫機(.pst)Outlook 2007。
很好,請查看我的答案,希望對您有所幫助!
二 答案:
n611x007
2015-01-09 01:03:07 UTC
view on stackexchange narkive permalink

借助免費的開源libpff,我可以導出Outlook中的所有數據,希望對您有所幫助:

如果您設置了Outlook以在本地緩存每封郵件,則可以導出脫機存儲表或 .ost 文件中的數據,該數據應位於帶有項目的 C:\ Users \ <your_user> \ AppData \ Local \ Microsoft \ Outlook \ 中稱為 libpff

對於那些具有編程技能的人來說, cygwin構建說明才對我有用。 但是

對於那些只想要可執行程序的人,這是我的 libpff構建 。 p>

zip包含兩個命令行程序 pffexport pffinfo

幫助 pffexport --help 給出了一個非常簡單的主意(作者做得好!)。

我使用了以下命令-像往常一樣用您的文件名替換 my_user

  pffexport.exe -f all -m all my_user.ost  

這會將計算機上可用的電子郵件數據轉換為普通文件夾和文件,例如 Message .html

例如,在我的測試導出中發現一封郵件為 my_user.ost.export \ Root-Mailbox \ IPM_SUBTREE \ Inbox \ Message00303 \ Message.html 文件其他元數據文件,例如 InternetHeaders.txt Recipients.txt

我希望這對您有所幫助,因為它看起來和實際數據一樣接近您可以從離線文件中獲取。 libpff作者歸功於這個很棒的庫!

作為參考,我使用了Outlook 2010。

這些腳本看起來很有用,並且肯定會減少我實現它們所需的時間。我不清楚腳本是否還清除了Microsoft插入HTML消息中的異常HTML。
@HunterHogan哦,您真好!抱歉,我正在嘗試尋找時間來查看數據以確定答案。 (我希望這是一個可悲的答案,但誰知道呢!希望如此,我計劃檢查是否有專用的標籤剝離器...)
libpff在大約200封電子郵件後僅寫入部分標頭。有什麼原因嗎?
Steve Barnes
2014-12-27 00:50:35 UTC
view on stackexchange narkive permalink

您可以使用 python和python win32庫,您可以訪問Outlook文件夾的內容,包括消息的內容以及“收件人”,“來自”和“主題”字段,然後將內容壓縮到您需要的任何格式。 python URL和/或Mechanise庫甚至可以為您將內容髮佈到網站上。

鑑於您已經擁有Outlook,其他所有內容都是免費的,請參見 testingreflections的示例腳本:

 #!/ usr / bin / env python來自win32com.client import Dispatchsession = Dispatch(“ MAPI.session”)session.Logon('OUTLOOK')#MAPI配置文件名稱inbox = session.Inboxprint“收件箱名稱為:“”,inbox.Nameprint“郵件數:”,inbox.Messages.Count for i在範圍內(inbox.Messages.Count):message = inbox.Messages.Item(i + 1)打印message.Subject 代碼> 
感謝您的回答和示例!我應該學習Python,因為它一直是有用的工具。是否有一個庫可以清除Microsoft不必要的HTML?如果是這樣,那麼我認為這是一個很好的解決方案。作為其瘋狂標記的一個示例,不僅將
  • 用作訂單項,還將放置
  • 。甚至HTMLTidy也無法清除所有垃圾。
  • 大多數電子郵件都是文本格式的-有點粗糙,但沒有雜亂的html / rtf /任何格式-您實際上可以選擇要抓取的格式。另外,您也可以使用一些工具來運行html,從而擺脫MS crud。例如解析為XML,然後輸出為html可能會完成這項工作。
    該腳本可以提取Internet標頭嗎?


    該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
    Loading...