Для ленивых и не желающих возиться, сдувать пыль с бубна по настройке exim4/postfix/sendmail предлагается простейший сборщик почты написанный на Python[1].
Его работа заключается в сборе всей почты, посылаемой этому фейковому smtp серверу и складывании её в указанную папку /tmp/mails в виде файлов писем nobody@mail.local.1 с порядковым номером.
Шаг №1: установка nullmailer
В стандартных репах должен быть nullmailer. Если нет, то качаем, а есть то устанавливаем:
sudo apt-get install nullmailer
Идём в /etc/nullmailer и в файле remotes добавляем:
localhost smtp
Перезапускаем:
service nullmailer restart
В Debian-подобных линуксах очередь писем находится в /var/spool/nullmailer/queue/
Шаг №2: установка fakemail
Качаем скрипт fakemail, распаковываем. Если стандартно, то запускаем
python setup.py install
или копируем файл fakemail.py куда надо.
Теперь хотелось бы его сделать запускаемым как сервис, а не просто висящим в консоли.
Для этого создаём файл /etc/init.d/fakemail и вставляем в него следующий код:
#!/bin/sh
set -e
NAME=fakemail
DAEMON=/usr/local/bin/$NAME.py
DOPTIONS="--path=/tmp/mails"
test -x "$DAEMON" || exit 0
PIDDIR=/var/run
PIDFILE=$PIDDIR/$NAME.pid
LANG=C
export LANG
. /lib/lsb/init-functions
start_fakemail()
{
start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --exec $DAEMON -- $DOPTIONS >/dev/null 2>&1 &
}
stop_fakemail()
{
if [ -f "$PIDFILE" ]; then
PID=`cat $PIDFILE`
kill -2 $PID
rm -f "$PIDFILE"
fi
}
case "$1" in
start)
log_daemon_msg "Starting MTA"
start_fakemail
;;
stop)
log_daemon_msg "Stopping MTA"
stop_fakemail
;;
restart)
stop_fakemail
start_fakemail
;;
esac
exit 0
Если вы копировали руками файл, то, возможно, стоит отредактировать файл и в 6 строке, где DAEMON, заменить путь к нашему питоновскому файлу.
Делаем запускаемым:
sudo chmod +x /etc/init.d/fakemail
Теперь надо создать (под рутом) папку mails в /tmp[2]
sudo mkdir /tmp/mails
И добавить ссылкы на сервис во время завершения работы системы:
sudo ln -s /etc/init.d/fakemail /etc/rc0.d/K20fakemail
sudo ln -s /etc/init.d/fakemail /etc/rc1.d/K20fakemail
sudo ln -s /etc/init.d/fakemail /etc/rc6.d/K20fakemail
Если вам нужно, чтобы он так же автоматически стартовал, то добавьте следующее:
sudo ln -s /etc/init.d/fakemail /etc/rc2.d/S20fakemail
sudo ln -s /etc/init.d/fakemail /etc/rc3.d/S20fakemail
sudo ln -s /etc/init.d/fakemail /etc/rc4.d/S20fakemail
sudo ln -s /etc/init.d/fakemail /etc/rc5.d/S20fakemail
Запускаем сервис:
service fakemail start
[1] основной материал был найден по ссылке, я лишь дописал сервис.
[2] можно и любую другую папку, но тогда надо внутри /etc/init.d/fakemail где DOPTIONS= изменить ваш путь --path=/path/to/folder
Автор: romy4