В процессе совершенствования собственного ВЕБ-сервера, пришлось мне переехать на Linux. Тут было бы не лишним упомянуть, что Linux я не только плохо знал, но и основательно подзабыл. А по переезду выяснил, что функция PHP mail на новом сервере перестала работать.
Ну, для начала, я решил проверить пути. Указанный в конфигурационном файле php.ini путь sendmail_path оказался корректным. Решил проверить статус самой службы sendmail. Оказалось не активна. Чуть было не запустил её, вовремя сообразив, что ее пришлось выключить, т.к. она конфликтовала с используемым мною в системе почтовым сервером CommuniGate Pro. Но у этого сервера есть свой исполняемый файлик sendmail, находящийся в директории с установленным сервером. Не вопрос — исправил путь (вместо /usr/sbin/sendmail прописал /opt/CommuniGate/sendmail). Думаете помогло? Вот именно.
Некоторое время тупо блуждал по статьям, предоставленным мне Яндексом на запрос «PHP mail настройка sendmail CommuniGate». Ничего удобоваримого и полезного. Много профессионального сленга, куча терминов и никакой подсказки.
И тут мне вспомнилось, что sendmail, по идее, может использоваться и не как демон, а просто как исполняемая программа, т.е. единоразово запускаемая. Ну, т.е. вызвал его с нужными параметрами, он отработал и закрылся. Почему тогда не отрабатывает?
Размышляя над этим вопросом, я машинально посмотрел на размер файла sendmail в своем Midnight Commander’e. И как-то он мне сразу не понравился — 21 байт как-то маловато мне показалось. Сравниваю с размером файла sendmail в директории CommuniGate Pro и понимаю — не показалось. Больше чем 55 килобайт! И тут у меня родилась подленькая мыслишка заменить оригинальный sendmail тем, который лежит в директории CommuniGate Pro, предварительно переименовав его в sendmail.origin (бекаптесь, господа — это убережет вас от многих и больших головняков!). Само собой перезапускаю Апач (PHP у меня установлен как модуль Апача, а не как CGI). Проверяю и — о чудо! — всё заработало.
Похожие записи
Нет комментариев
Оставить комментарий или два