Найпростіший SMTP сервер для розробок

Для ледачих і не бажаючих возитися, здувати пил з бубна по налаштуванню 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

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.