2011-09-24 76 views
2

我需要建立一個電子郵件解析腳本,將解析會進入收件箱和內容轉儲到數據庫的電子郵件,而在同一時間做同一個捲曲的請求從電子郵件解析的詳細信息。如何解析實時電子郵件,因爲他們收到

在這一刻我很卡在執行上,因爲它們在收件箱中收到如何解析實時電子郵件的一部分。有沒有辦法設置觸發器來做這樣的事情?我在使用基於php的webmail客戶端方面擁有豐富的經驗,但這看起來不同。

這怎麼可能實現 - 我假設一個cron作業,但如果那裏有另一種方式來做到這一點,我所有的耳朵。

回答

5

是的,有。 您可以將電子郵件傳送到您的腳本。

假設你正在使用的cPanel,按照這個steps

  • 登錄到您的cPanel。
  • 點擊Forwarders圖標,在Mail標籤下。
  • 點擊Add Forwarder按鈕。
  • 填入Address to Forward,並把你想要的郵件地址從 中傳出。
  • 選擇Pipe to a Program和完整路徑填寫腳本 將處理的消息。

這裏是將接收到的電子郵件到你的其他郵件(只用於演示)郵件捕手例如:

#!/usr/bin/php -q 
<?php 

// read from stdin 
$fd = fopen("php://stdin", "r"); 
$email = ""; 
while (!feof($fd)) 
{ 
    $email .= fread($fd, 1024); 
} 
fclose($fd); 


mail('[email protected]','From my email pipe!','"' . $email . '"'); 

?> 
+0

哇我永遠不知道你可以直接發送電子郵件到腳本 - 感謝您的幫助,我會給它一個鏡頭。 – Ali

5

如果您想在特定時間執行某項操作,您將使用cron作業。如果您想在電子郵件到達時執行某些操作,則需要將您的代碼綁定到您的電子郵件系統中。通常的做法是使用Procmail(你可以使用a recipe(只讀PHP for Perl/shell))。

1

我一直在使用PECL擴展mailparse網站上爲一些現在已經很多年了,這很好。

我有所有郵件特定主機獲得通過管道輸送到使用mailparse解析消息,並將其插入到數據庫中的PHP腳本,以及過程中的附件或多個收件人。

他們有一個示例文件try.php在下載,能夠讓我開始。

根據什麼郵件服務器,你需要做的是管道傳入郵件到你的腳本像昆汀說最簡單的事情。我使用exim,我所要做的就是爲我的域創建一個valiases文件,如下所示:*: "|/home/site/process_mail.php"並從那裏mailparse完成大部分的辛苦工作,然後處理該消息並將其添加到數據庫中。

相關問題