2010-07-15 54 views
0

我使用的是我的Linux郵件服務器的Postfix。目標是將任何傳入郵件轉儲到帶有標題和郵件信息的數據庫中,然後從郵件服務器中刪除電子郵件。每當有新的電子郵件進入後,是否有任何方法讓postfix向php文件發送消息,然後刪除電子郵件?我可以看到的另一種方式是製作腳本來輪詢電子郵件服務器,讀取每封郵件並將內容傳輸到數據庫,然後從郵件服務器中刪除郵件。能夠讓後綴自動執行所有新的傳入郵件的PHP腳本將是一個更好的選擇。如果它有所不同,郵件服務器和具有php文件的服務器是相同的。任何方向在這個問題將不勝感激。將所有新電子郵件傳送到數據庫

回答

2

使用.forward,/ etc/aliases,hashtable等將郵件轉發到腳本。

在/ etc/aliases中,我有

mysite-confirm: |/home/mysite/confirm.sh 

在confirm.sh,我有

#!/bin/sh 
basedir=/home/mysite/www 
php -d include_path=$basedir/includes -f $basedir/cli/confirm.php 

在confirm.php,神奇的發生:

$contents = file_get_contents("php://stdin"); 
do_magic_with_mail($contents); 

所有相當簡單和僵化。唯一的缺點是你可以通過郵件[email protected]_domain_I_host.com,但你可以使用正確的別名/虛擬地圖等來修復。

+0

什麼是do_magic_with_mail()?似乎並未在php.net上列爲功能 – naif 2010-07-15 19:09:35

+0

'do_magic_with_mail()'只是對數據庫執行INSERT查詢。 – Wrikken 2010-07-15 19:25:39

+0

哦,是的,對不起,我沒有拼出一個......你有你的郵件在'$ contents',認爲你可以從那裏處理? – mvds 2010-07-15 19:41:45

相關問題