Ubuntu
將指定域上的所有郵件轉發到腳本
我執行一個一次性電子郵件服務,它接受所有傳入的郵件並將其轉發到 PHP 腳本,該腳本將其儲存在數據庫中以供人們查看。在此之前,我一直在使用 cPanel 進行共享主機,這使得將電子郵件通過管道傳輸到腳本變得很容易。但是,現在我有了自己的 VPS,但它沒有 cPanel。如何通過管道將電子郵件發送到腳本?此外,如何將電子郵件發送到某些指定域上的任何地址到我的腳本?您會看到,除了主域之外,如果主域被阻止,人們可以使用幾個備用域,並且在每個域上我希望任何地址都可用(xyz@domain1、abc@domain2、anythingelse@domain3)。
VPS 安裝了 Ubuntu 9.04,我一直在嘗試使用 Postfix,不過如果更簡單的話,我可以切換到 Exim 或 Sendmail。
終於想通了。我最後使用了Sendmail。我在 sendmail.mc 中打開了 virtusertable 功能,(請參閱Sendmail 網站上的資訊),然後在 /etc/mail/virtusertable 中放入以下行:
@disposaldomain.net parser@localhost
它將所有到該域的郵件通過管道傳遞給使用者“解析器”。然後,我在 /etc/mail/aliases 的末尾添加了這一行:
parser: "|/path/to/script/parser.php"
之後,我必須執行這些命令(來自 /etc/mail):
makemap hash virtusertable.db < virtusertable newaliases /etc/init.d/sendmail reload /etc/init.d/sendmail restart
做到了!