Php

Postfix 不會通過別名文件傳送到 PHP 文件

  • November 3, 2012

我正在嘗試從後綴管道到命令。根據 Postfix 日誌它可以工作,但是當我檢查命令時它沒有。這是一個全新的 postfix 安裝。這是我的別名文件:

# See man 5 aliases for format
postmaster:    root
support:  "| /usr/bin/php -q /var/www/pipe/pipe.php"

我執行sendmail support@mydomain.com然後鍵入它,然後在單獨的行類型上執行.它。我檢查了後綴日誌/var/log/mail.log,這就是它所說的:

Nov  2 15:32:33 server3 postfix/local[13284]: 42C429E0B5: to=<support@mydomain.com>, relay=local, delay=156, delays=156/0.01/0/0.05, dsn=2.0.0, status=sent (delivered to command:  /usr/bin/php -q /var/www/pipe/pipe.php)

所以根據它的工作,但它沒有。如果我執行echo 'text' | /usr/bin/php -q /var/www/pipe/pipe.php它確實工作得很好。

任何想法我做錯了什麼?

我知道管道正在工作,我最初通過執行上面不帶引號的命令來檢查它,所以support: | /usr/bin/php -q /var/www/pipe/pipe.php它所做的只是將我的電子郵件標題和所有內容附加到文件 pipe.php。所以我知道後綴正在管道它,但是當我加上引號時它說它正在執行,但它不符合我的腳本。

我的/etc/postfix/main.cf文件中只失去了一行。

default_privs = www-data

這很奇怪,因為我嘗試將文件作為 777 執行,所以理論上它應該可以工作。哦,好吧,它現在是這樣工作的。因此,簡而言之,設置文件所有者的權限,因為 Postfix 預設為 user nobody

引用自:https://serverfault.com/questions/444903