用於程式的快速 Linux 郵件伺服器設置
我是一名 PHP 網路開發人員。我需要設置我的 Ubuntu 工作站(10.04.1 LTS),這樣我就可以調試郵件,而不會真正發送到 WWW。因此,我需要使用像 from.com 和 to.com 這樣的假冒域。我可以配置 PHP 以啟用僅保留在我的伺服器上的外發郵件,然後使用 Evolution 接收此郵件,最快、最短、最簡單的方法是什麼?
比我在 2010 年 9 月 24 日想出的更快的答案是:
# apt-get install sendmail # vim /etc/hosts
用# 符號註釋掉 127.0.1.1 行,然後將其後的內容移到 127.0.0.1 之後。此外,確保 localhost、localhost.localdomain、from.com 和 to.com 位於 127.0.0.1 行上。例如,在我的工作站上,我的兩條線如下所示:
127.0.0.1 localhost.localdomain localhost dev-laptop from.com to.com #127.0.1.1 dev-laptop
現在繼續…
# vim /etc/aliases
如果您登錄 Ubuntu 的帳戶是“dev”並且您要測試發送郵件的人是 joe@to.com,則添加“joe:dev”。
# newaliases # /etc/init.d/sendmail restart # /etc/init.d/apache2 restart
在 Evolution 中,選擇標準 Unix mbox 假離線文件(預設的 sendmail 格式)並指向 /var/spool/mail/dev 如果您登錄到 Ubuntu 是“dev”。對於外發郵件,選擇“sendmail”。如果“dev”是您的 Ubuntu 登錄名,則在要提取的郵件上將其設置為 dev@from.com。
此時,您的 PHP 程式碼可以通過電子郵件發送到 jack@to.com,並且可以很容易地在 Evolution 中獲取它們。這非常適合在 Ubuntu 工作站上本地調試 PHP Web 應用程序。
Ubuntu 預設帶有 Sendmail,在我看來,這可能會讓你大發雷霆。Postfix 似乎更容易配置。所以,我這樣做了:
sudo su apt-get --purge remove sendmail apt-get --purge remove sendmail-base apt-get --purge remove sendmail-cf apt-get install procmail
預設情況下,procmail 將安裝 Postfix。
當 Postfix 安裝執行時,它會自動顯示一個藍屏,您需要在其中選擇安裝類型。選擇僅本地。
接下來,編輯 /etc/postfix/main.cf 並設置mydestination參數,以便它包含一個逗號分隔的域列表,用於您的 from 和 to,例如:
mydestination = localhost, localhost.localdomain, from.com, to.com
接下來,以 root 身份編輯*/etc/aliases 。因此,如果您在 Ubuntu 中的使用者帳戶(您登錄時使用的帳戶)是dev*,並且您想以程序員的身份將測試郵件發送到jack@to.com,那麼您的*/etc/aliases*將在某處包含以下條目:
jack: dev
完成後,以 root 身份執行以下命令:
newaliases
現在以 root 身份退回您的郵件伺服器:
/etc/init.d/postfix stop /etc/init.d/postfix start
現在,當您的 PHP 程式碼向 jack@to.com 發送來自 from.com 的任何地址*(**不管是哪個地址)的消息時,您的郵件伺服器將自動將其放入文件/var/spool/mail/dev*中。
那麼,怎麼去讀呢?好吧,我不是特別喜歡 Thunderbird 上的 Evolution,但它似乎更適合這項任務。我打開它並添加了一個新帳戶。在那裡,我添加了dev@localhost,然後選擇了Local Delivery。在那個文件路徑上,我選擇了*/var/spool/mail/dev*。在發送郵件時,我選擇了Sendmail,即使我不再安裝它。我的意思是,我不關心將郵件從我的收件箱發送回郵件伺服器,只是接收它以便我可以調試郵件並確保郵件能夠正常工作。但是,您可以根據需要選擇不同的外發郵件伺服器配置。無論如何,從那裡,我點擊“確定”,然後點擊“發送/接收”按鈕下載新消息。
那時,我可以通過 PHP 向帳戶jack@to.com發送消息,然後通過 Evolution 輕鬆地接收它們。