Я ему: “Exim, pipe email в скрипт и в почтовый ящик!” А он такой: “Mail delivery failed!”

Как уже писал, входящие ордера у меня идут на псевдо-email. Exim отправляет поток в скрипт и передаёт письмо дальше на реально существующий email.

Получается, что данные и в базу автоматом заносятся, и письмо я получаю о приходе ордера.

И вот оно “поломалось”…

То есть с моей стороны всё работало, как надо, а вот отправителю от сервера приходил привет вида:

SUBJ: Mail delivery failed: returning message to sender

BODY:
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  pipe to |/var/www/scrpts/gvmmny.php
    generated by [email protected]

The following text was generated during the delivery attempt:

------ pipe to |/var/www/scrpts/gvmmny.php
       generated by [email protected] ------

PHP Warning:  Module 'geoip' already loaded in Unknown on line 0
Works! OrderID: 63838534

blah-blah-blah

Сразу как-то не дошло, в чём проблема. Пришлось интернеты ихние читать…

Суть в том, что скрипт и вся его обвязка не должны ничего генерировать в поток. А у меня получалось, что и скрипт (в тестовых целях) чего-то своё писал, и варнинг от PHP прилетал.

Решение:

  1. Задисабил свой текст.
  2. Задисабил подключение модуля в php.ini (;extension=geoip.so), поскольку он уже в сборке самого PHP присутствует (потому и варнинг).

И всё снова стало хорошо: и база пополняется, и я письма получаю, и отправитель отлупов от моего сервера не видит.