Postfix 不会通过别名文件传输到 PHP 文件

Postfix 不会通过别名文件传输到 PHP 文件

我正在尝试从 postfix 管道传输到命令。根据 Postfix 日志,它工作正常,但当我检查命令时,它却没有工作。这是新安装的 postfix。这是我的别名文件:

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

我运行然后输入它,然后在单独的行中输入它,它就运行了。我检查了 postfix 日志,它显示以下内容:sendmail [email protected]./var/log/mail.log

Nov  2 15:32:33 server3 postfix/local[13284]: 42C429E0B5: to=<[email protected]>, 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。所以我知道 postfix 正在对其进行管道传输,但当我加上引号时,它说它正在运行,但这并不符合我的脚本。

答案1

我的文件中只缺少一行/etc/postfix/main.cf

default_privs = www-data

这很奇怪,因为我尝试以 777 的身份运行文件,所以理论上它应该可以工作。哦,现在它就是这样工作的。简而言之,设置文件所有者的权限,因为 Postfix 默认为用户nobody

相关内容