Скрипт-заглушка Sendmail

21 марта 2009 20:36 ::: Просмотров 1667 ::: Комментариев 2

Как то раз в целях отладки одного проекта на 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 явный путь к скрипту в домашней папке.

Share |

Комментарии

vladname — 17 ноября 2009 18:04#446

@axe конечно же, не /etc а /var. В релизе убунту 9.10 все равно не работало, куда бы не ложил, хотя в предыдущем релизе заработало замечательно. Пришлось отредактировать php.ini

axe — 16 ноября 2009 23:16#445

поправил пути в скрипте на свой домашний каталог. у меня ubuntu 9.10. внутри /etc нет sbin. создал мягкую ссылку в /sbin. в php.ini прописал: sendmail_path = sendmail -t -i перегрузил апач. не работает. что я делаю не так?
Комментарии 1 - 2 из 2
Пожалуйста, введите результат выражения, указанного на картинке.

Поля с * обязательны.