2009-07-29 93 views
1

我建立一個系統,用於自動分析傳入的電子郵件,並從中填充數據庫電子郵件解析系統

最初只會出現10-20預計未來格式的,但長期來看有幾千種不同的可能性格式

的方式,我看到它

  1. 我需要確定電子郵件的格式(例如,在主題行的正則表達式)
  2. 解析電子郵件與正確的處理器
  3. 檢查的數據是真實的,也許旗一些手動檢查
  4. 填充數據庫

什麼,我以後是如何構建這個建議,比如我該存儲格式的數據庫或平面文件,系統需要靈活,可能是主題行檢測不夠,我可能還必須掃描電子郵件標題。

數據本身可能在電子郵件正文或附件,如PDF,Excel文件等

這樣的事情的一個很好的例子是Picasa照片庫,在那裏你可以通過電子郵件發送照片到特定的喜歡電子郵件地址,它會自動提取它們並將其放入圖庫中

回答

2

也許不是最有名的答案,但是你有沒有看過標準的方法來做到這一點,比如procmail?爲您提供對電子郵件的基本理解,並允許您圍繞一切構建過濾器。 (首先通過文件類型檢測器處理郵件,將正則表達式應用於所有可能的頭文件,...)

這樣,您可以將系統的每個部分都保存在專門的腳本/程序中,並生成一個模塊化的解決方案,延長。另外,您可以使用任何其他人已經編程的工具。

對於文件類型過濾器:我正在通過procmail做一些比較破舊的舊pgp郵件來添加內容類型。然後

# repair pgp-encoded messages with missing Content-Type 
###################################################################### 

:0 
* !^Content-Type: message/ 
* !^Content-Type: multipart/ 
* !^Content-Type: application/pgp 
{ 
    :0 fBw 
    * ^-----BEGIN PGP MESSAGE----- 
    * ^-----END PGP MESSAGE----- 
    | /usr/bin/formail \ 
     -i "Content-Type: application/pgp; format=text; x-action=encrypt" 

    :0 fBw 
    * ^-----BEGIN PGP SIGNED MESSAGE----- 
    * ^-----BEGIN PGP SIGNATURE----- 
    * ^-----END PGP SIGNATURE----- 
    | /usr/bin/formail \ 
     -i "Content-Type: application/pgp; format=text; x-action=sign" 
} 

進一步加工可以匹配的內容類型,並指定專人處理程序特殊類型(和一般處理程序,未知類型)。

0

您可能想要執行的操作是首先解析標題和主題行,然後通過數據庫導入正確的格式。由於可能有數千種格式,數據庫將是最簡單的方式,因爲它是動態的。沒有用於創建數千個文件。