Denwer + Sendmail
Проблема:
Необходимо сменить слушаемый Denwer-ом SMTP порт с 25-го на 24-й.
Объяснение:
Т.к. Денвер предназначен прежде всего для отладки, использование «реального» sendmail в нем вряд ли оправдано. Именно по этой причине базовый пакет содержит «отладочную заглушку» для sendmail, которая складывает письма, приходящие от скриптов на Perl и PHP, в файл /tmp/!sendmail.txt. В большинстве случаев этого должно быть достаточно, однако, если вам все же потребуется настоящий сервер, можно порекомендовать, например, вот этот: http://courierms.narod.ru. См. также собрание ссылок на иные варианты.
Или, если у Вас уже есть настроенный почтовый сервер, то просто прописываем его параметры в php.ini, см..
При ближайшем рассмотрении видно, что, собственно, сам исполняемый файл "sendmail.exe" даже не запускается. Вместо него работает "sendmail_daemon_start.exe". Так же - как ни старайся, настройки из файла "php.ini" абсолютно не влияют на процесс sendmail.
Решение:
-
Открываем файл "\denwer\tools\sendmail\common.pm"
-
Находим строку
Код: Выделить всё
my $port = 25;
-
Меняем номер порта на тот, который нам нужен
Код: Выделить всё
my $port = 24;
-
Сохраняем изменения и закрываем файл
-
Перезапускаем Denwer
-
Тестируем работу заглушки:
Код: Выделить всё
telnet localhost 24
в ответ мы должны получить сообщение от sendmail:
Код: Выделить всё
220 Denwer mail daemon emulator
-
Выходим командой
Код: Выделить всё
quit
Примечание: Заглушка sendmail по-умолчанию слушает только локальный компьютер (localhost)