Я следил за этим ответом Передать всю почту Postfix для домена PHP-скрипту - Centos7 / EC2 для направления входящей почты для определенного адреса в сценарий PHP.
Запись в файле моих псевдонимов выглядит так:
mail-incoming-php: "/usr/bin/php -q /var/spool/mail/php/incoming.php"
И виртуальный файл Postfix сопоставляет адрес электронной почты с
mail-incoming-php@localhost
Мой текущий тестовый сценарий PHP настроен на создание пустого файла, который я протестировал. При отправке почты на указанный адрес скрипт PHP не создает файл, а maillog
содержит эту ошибку:
cannot append message to file /usr/bin/php -q /var/spool/mail/php/incoming.php: cannot create file exclusively: No such file or directory
Я временно установил разрешение PHP-скрипта на 777 и получаю ту же ошибку.
Может, это не лучший способ решить эту проблему или нужно еще что-то сделать?
Все, что мне нужно от сценария, - это прочитать содержимое входящей электронной почты, после этого электронная почта не должна пересылаться.
В отличие от связанного вопроса, вы не трубопровод почту скрипту, т.е.
mail-incoming-php: "| /usr/bin/php -q /var/spool/mail/php/incoming.php"
Потому что вам не хватает |
вместо этого вы пытаетесь записать (добавить) в файл:
/usr/bin/php -q /var/spool/mail/php/incoming.php
неверный путь.
/usr/bin/php
добавит сообщение в двоичный файл PHP.
(К счастью, на это нет разрешения!)
/var/spool/mail/php/incoming.php
будет добавляться к сценарию.
Кроме того, у вас не должно быть сценария с возможностью глобальной записи. 777
, но (максимум) 755
.