Скрипт-заглушка Sendmail
Как то раз в целях отладки одного проекта на localhost`е нужно было проверить отправку сообщений электронной почтой с сайта. Однако желания ставить почтовый сервер типа Exim или чего другого ради такой мелочи совершенно не было. За советом, как обычно, обратился к Гуглю. Долго ли, коротко ли, но приемлемое решение этой нетипичной задачи было найдено. Итак, что нужно сделать.
В директории /bin своей домашней папки я создал текстовый файлик с правом на выполнение такого содержания:
!/bin/sh prefix="/home/vlad/fake-sendmail/new" numPath="/home/vlad/fake-sendmail" if [ ! -f $numPath/num ]; thenecho "0" > $numPath/num fi num=`cat $numPath/num` num=$(($num + 1)) echo $num > $numPath/numname="$prefix/letter_$num.txt" /bin/true while read line do echo $line >> $name done chmod 777 $name
Создал директорию ~/fake-sendmail/new опять же в своей домашней папке - сюда будут падать письма в простом текстовом формате. Настройки в скрипте следует изменить на свои. В директории /usr/bin создал ссылку с именем sendmail на вышеописанный скрипт, эмулирующий почтовый сервер. Идея проста - клиент вызывает вместо почтового сервера для отправки письма наш скрипт, который перехватывает сообщение и записывает его в означенную папку. Всё, вуаля!
Глубокое спасибо автору скрипта! Насколько сейчас помню, решение найдено где-то на русском форуме убунту.
UPD. Здесь нашлась аналогичная статья. И кстати, в Убунте 9.10 имеют место некоторые проблемы. Быстрое решение - прописать в /etc/php5/apache2/php.ini явный путь к скрипту в домашней папке.
vladname — 17 ноября 2009 18:04#446
@axe конечно же, не /etc а /var. В релизе убунту 9.10 все равно не работало, куда бы не ложил, хотя в предыдущем релизе заработало замечательно. Пришлось отредактировать php.iniaxe — 16 ноября 2009 23:16#445
поправил пути в скрипте на свой домашний каталог. у меня ubuntu 9.10. внутри /etc нет sbin. создал мягкую ссылку в /sbin. в php.ini прописал: sendmail_path = sendmail -t -i перегрузил апач. не работает. что я делаю не так?