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

21 Марта 2009 21:36 ::: Просмотров 8184 ::: Комментариев 5

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

UPD2. Для разработки под виндовс тоже есть решение для тестирования отправки почты.

Комментарии

axe17 Ноября 2009 00:16#512

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

Владислав17 Ноября 2009 19:04#513

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

купить кулер06 Мая 2013 09:38#902

для тех кто сидит на виндах дальше денвера со стандартной заглушкой sendmail ходить особого смысла нет

Владислав06 Мая 2013 09:56#903

не все используют денвер (например мне он не понравился). а некоторые ставят апач и мускуль сами. раньше я использовал xammp, а сейчас bitrix environment, и в последнем случае тема актуальна

Юрий18 Марта 2016 16:14#1311

apt-get install postfix - и не надо ни чего конфигурировать - почта от скриптов будет уходить нормально

Возврат к списку