2011-08-11 62 views
2

我正在尋找一種使用PHP捕獲和管理電子郵件數據的方法。基本上,我想要做的是捕獲電子郵件中的所有數據,然後根據我的規範操縱這些數據。使用PHP捕獲和管理電子郵件數據

例如,比方說,我包含一個.zip文件附件的電子郵件發送到[email protected],我希望能夠到:

  1. 獲取附件,並將其放置在一個特定的文件夾我的網站
  2. 獲取電子郵件
  3. 的文本內容的電子郵件時
  4. 的主題獲取發件人的信息,即電子郵件地址

任何人都知道我可以如何高效地使用PHP來完成此任務。順便說一句,我正在使用LAMP。

謝謝。

+0

添加到邁克爾的回答,我創建了PEAR的Mail_mimeDecode一個包裝類,我希望能幫助http://sudocode.net/sources/includes/class-email-php/ – Arvin

+0

非常感謝。這一定會派上用場。你可以給我一些關於如何在Linux上安裝SendMail管道的指針,特別是Ubuntu? –

回答

2

從PEAR Mail_mimeDecode開始。你想要做的是雄心勃勃,但可以做到。

基本上你會做的是:

指示你的MTA從地址郵件傳遞到管道進入你的PHP腳本。後綴和Sendmail的可以用諸如一個別名處理這個問題:

myemail: "|/path/to/your/parsingscript.php" 
  • 從BASE64(或其它編碼)
  • 解析解碼他們後
  • 定位與存儲的附件解析出MIME電子郵件消息的部分標題。

你的PHP腳本可能會從STDIN讀取電子郵件,然後將字符串傳遞給mimeDecode,它會創建一個包含所有的MIME部件的對象。

假設你的消息是received into $str from STDIN,這樣的事情讓你開始:

$mime = Mail_mimeDecode::decode(array('include_bodies'=>TRUE, 'decode_headers'=>TRUE, 'decode_bodies'=>TRUE, 'input'=>$str)); 

// get the recipient To address: 
$to = $mime->headers['to']; 
+1

謝謝。雖然看起來有些複雜。我對PHP很滿意,但我非常喜歡Linux的新手,特別是服務器管理。任何想法,我可以得到更多的信息如何在Ubuntu上設置sendmail的管道?並且使用IMAP功能是更可行的選擇? –