Назад | Перейти на главную страницу

Запускать входящую почту через скрипт PHP - Postfix

Я следил за этим ответом Передать всю почту 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.