В одном из моих личных проектов я разрабатываю базовый SMTP-сервер на php.Он готов и работает, когда я запускаю его самостоятельно из командной строки;Я правильно обращаюсь к нему через telnet, и он корректно реагирует на команды SMTP, и я правильно к нему обращаюсь также из сценария php, отправляющего электронную почту с использованием этого сервера.
Теперь у меня возникает проблема при запуске сервера с phpсценарий, а не из командной строки (я делаю это с помощью функции exec
).Сервер правильно отвечает, когда я получаю к нему доступ через telnet, но не с помощью php-скрипта, отправляющего электронное письмо.
Может ли кто-нибудь мне помочь?1011 * Для отправки писем из скриптов php я использую расширение Mail PEAR.Когда я запускаю сервер из скрипта и пытаюсь отправить электронное письмо в том же процессе, я получаю эту ошибку:
SMTP: Failed to connect socket: Connection refused (code: -1, response: )
Сводка
Моя реализация сервера находится в server.php
, а сценарий отправки электронной почты - в mail-test.php
.
1) Если я запускаю сервер в командной строке следующим образом: php server.php
, а затем запускаю php mail-test.php
скрипт обрабатывается нормально и электронное письмо отправляется.Я также могу получить доступ к серверу через telnet 127.0.0.1 3535
и нормально общаться с сервером.
2) Используя другой скрипт под названием test.php
, я хотел обернуть управление сервером, запустив сервер через exec("php server.php > /dev/null 2>&1 &");
, а затемделать отправку почты из этого скрипта в один выстрел.При этом сервер правильно запускается (я могу получить к нему доступ через telnet
), но сообщения электронной почты, отправленные с test.php
, поэтому после запуска сервера возникает ошибка.Если я отправляю электронные письма из другого сценария, прежде чем убить процесс test.php
, электронная почта отправляется правильно ...
Надеюсь, я достаточно откровенен.