2011-02-23 88 views
1

我想有一臺能夠接收電子郵件的服務器。比我想用PHP編寫電子郵件顯示給用戶的方式。我可以純粹使用PHP嗎?我想,從PHP發送郵件不是問題,但我不知道我是否可以通過PHP接收郵件? (以某種方式PHP接收POST請求)。如何創建郵件服務器?

ADDED

至於第一個答案的迴應,我想說明,它看起來像我需要的SMTP服務器。我希望能夠以編程方式與SMTP服務器通信。例如,我想有可能「告訴」SMTP服務器創建新的電子郵件地址。我還需要知道傳入郵件的存儲位置和格式。例如,我如何從與收到的郵件相對應的文件中提取「發件人」,「cc」,「bcc」。

+0

一般來說,PHP不會直接處理POST請求。網絡服務器(如Apache)將收到POST請求,然後執行PHP程序並通過標準輸入和環境將請求中的數據傳遞給它。 – Quentin 2011-02-23 12:56:08

回答

4

想要一臺能夠接收電子郵件的服務器。

如果您是從頭開始編寫,那麼您將需要the specification for SMTP。我會非常強烈地反對這一點。 SMTP服務器很難寫,而且有幾個非常好的開源解決方案。

我對PHP的理解是它在多線程方面做得很差,所以它可能不是一個很好的解決方案。

比我想用PHP來的郵件顯示給用戶

接收郵件通常不拿給用戶服務器的方式進行編程。他們通常以其他軟件(如本地電子郵件客戶端或IMAP服務器)訪問的標準方式(如Maildir或mbox)存儲它們。

向用戶顯示電子郵件的工作屬於電子郵件客戶端。基於Web的PHP網絡郵件軟件包括SquirrelMail和RoundCube。 AFAIK他們都充當IMAP客戶端。請參閱IMAP specification

作爲對第一個答案的迴應,我想指定它看起來像我需要一個SMTP服務器。我希望能夠以編程方式與SMTP服務器通信。例如,我想有可能「告訴」SMTP服務器創建新的電子郵件地址。

選擇一個在您的操作系統上運行的SMTP服務器。閱讀說明以瞭解如何配置交付地址和接受的地址。它通常歸結爲操縱文本文件。

我還需要知道傳入郵件的存儲位置和格式。例如,我如何從與收到的郵件相對應的文件中提取「發件人」,「cc」,「bcc」。

再次。請參閱郵件服務器的手冊。大多數人會給你選擇存儲數據的位置和格式。

然後你只需要決定是否要讓PHP直接挖掘這些人,或者在兩者之間使用IMAP服務器。

2

不,這是不容易的。PHP是用於(無狀態)http協議的,而郵件是根據各種請求和響應構建的對話發送的。

可以使用PHP解析和處理郵件,但我會建議安裝一個可以使用POP3從PHP讀取的郵箱。然後,您的PHP應用程序可以顯示並處理來自該郵箱的郵件。