у меня здесь проблема.
Я хочу, чтобы входящее электронное письмо передавалось в php-скрипт в системе через postfix.
Моя система работает с ispconfig 3, postfix и dovecot (<пользователи виртуальных почтовых ящиков сохраняются в mysql).
Я уже заглядывал в это: Как настроить postfix для передачи всей входящей электронной почты в сценарий?
... сценарий выполняется, но "сообщение" сценарию не доставляется. Моя установка на данный момент:
В ISPConfig 3 я настроил следующий маршрут электронной почты:
Active Server Domain Transport Sort by
Yes example.com pipe.example.com piper: 5
выдержка из моего postfix master.cf:
piper unix - n n - - pipe
user=piper:piper directory=/home/piper argv=php -q /home/piper/mail.php
пока он работает отлично (письмо отправлено на test@pipe.example.com) (mail.log):
Jun 21 16:07:11 example postfix/pipe[10948]: 235CF7613E2: to=<test@pipe.example.com>, relay=piper, delay=0.04, delays=0.01/0.01/0/0.02, dsn=2.0.0, status=sent (delivered via piper service)
... и никаких ошибок в mail.err
mail.php успешно выполняется (его chmod 777 и chown'ed to piper), но создает пустой файл .txt (обычно он должен содержать сообщение электронной почты):
-rw------- 1 piper piper 0 Jun 21 16:07 mailtext_1340287631.txt
используемый скрипт mail.php - это тот из http://www.email2php.com/HowItWorks
если я использую их (коммерческую) службу для передачи сообщения электронной почты в mail.php (в среде apache2) через предоставленный "канал-адрес электронной почты", сообщение будет успешно сохранено и завершено. Но, как видите, я не хочу использовать внешние сервисы.
-rw-r--r-- 1 web2 client0 1959 Jun 21 16:19 mailtext_1340288377.txt
Итак, что здесь не так? Я думаю, это как-то связано с "доставкой конфигурации" в моей системе ...
Это потому, что ваш PHP-скрипт дерьмо. Он не сохраняет STDIN в файл. Вместо этого он сохраняет в файл неинициализированную (пустую) переменную. Вот почему он пустой.
Вы должны изучить PHP, чтобы решить эту проблему.