所以我想弄清楚如何發送電子郵件到一個地址,例如[email protected],而不是電子郵件去那裏它會被髮送或轉發給我創建的腳本來讀取電子郵件的內容並將內容存儲到數據庫中。任何關於如何在PHP中執行的建議?處理傳入的電子郵件與PHP腳本
謝謝!
所以我想弄清楚如何發送電子郵件到一個地址,例如[email protected],而不是電子郵件去那裏它會被髮送或轉發給我創建的腳本來讀取電子郵件的內容並將內容存儲到數據庫中。任何關於如何在PHP中執行的建議?處理傳入的電子郵件與PHP腳本
謝謝!
下面是一些代碼,你可以用它來讓你去:
// set user to check
$strUser = "username";
$strPassword = "password";
// open
$hMail = imap_open ("{mail.yourdomain.com:143/notls}INBOX", "$strUser", "$strPassword");
// get headers
$aHeaders = imap_headers($hMail);
// get message count
$objMail = imap_mailboxmsginfo($hMail);
// process messages
for($idxMsg = 1; $idxMsg <= $objMail->Nmsgs; $idxMsg++ )
{
// get header info
$objHeader = imap_headerinfo($hMail, $idxMsg);
// get from object array
$aFrom = $objHeader->from;
// process headers
for($idx = 0; $idx < count($aFrom); $idx++)
{
// get object
$objData = $aFrom[ $idx ];
// get email from
$strEmailFrom = $objData->mailbox . "@" . $objData->host;
// do some stuff here
}
// delete message
imap_delete($hMail, $idxMsg);
}
// expunge deleted messages
imap_expunge($hMail);
// close
imap_close($hMail);
兩個選項:
1)如果你有機會到收件人的電子郵件服務器上的外殼,你可以設置一個規則,通過每當收到新的消息的procmail等)以觸發腳本(如。
2)您可以允許電子郵件正常放入郵箱,然後編寫您的PHP腳本通過IMAP訪問郵箱,取出新郵件,處理它們,然後刪除它們。然後每隔幾分鐘由cron運行一次。
由於我不熟悉shell /如何設置規則,第二個選項可能更加可行。我希望這是非常實時的,所以如果我設置了IMAP,它必須每分鐘完成一次。我不確定服務器上會有多大的壓力。關於在哪裏可以找到如何編寫PHP腳本通過IMAP訪問郵箱的教程的任何建議? – Bill 2010-10-19 18:53:20
這取決於你的服務器有什麼MTA,如果它接受電子郵件。通常,雖然你將電子郵件傳送給你的腳本。腳本本身只是從STDIN讀取。 – Cfreak 2010-10-19 18:29:57