Задать вопрос
creativeworm
@creativeworm

Как сделать заглушку для SMTP (исходящие сообщения)?

Всем доброго вечера.
Для тестирования отправки писем нужно собрать заглушку SMTP для исходящих сообщений, но не знаю в какую сторону копать.
Имеется сервер с установленным exim, необходимо чтобы все письма либо складывались в папку либо пересылались на локальный адрес сохраняя отправителя и получателя. После сохранения прерывать отправку писем, т.к. ящики указаны тестовые и нам не принадлежат.

Подскажите возможные решения пожалуйста.

UPD: Нужно аккумулировать все письма в одном ящике или в папке на сервере чтобы потом их можно было все просмотреть.
  • Вопрос задан
  • 1135 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Поставьте экзим в локал деливери онли. Все сообщения будут приходить только на локальные ящики.
newbiedoc.sourceforge.net/networking/exim.html
Ответ написан
Не совсем подробно вы изложили задачу. Насколько я понял, сервер должен принимать к отправке письма на любые адреса, но осуществлять доставку локально. Т.к. вам это нужно для тестирования, то самым простым вариантом будет взять за основу дефалтный конфиг exim и, например, внести правки в роутер dnslookup, указав в качестве транспорта local_delivery.
dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = local_delivery
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
# if ipv6-enabled then instead use:
# ignore_target_hosts = <; 0.0.0.0 ; 127.0.0.0/8 ; ::1
  no_more


А транспорт remote_smtp на всякий случай закомментировать. В таком случае сервер не сможет осуществить реальную отправку почты. Есть и другие способы решить вашу задачу, но этот, как мне кажется, потребует минимум движений.

Чтобы получать всё в один каталог, подправьте local_delivery, чтобы доставка была в один и тот же каталог, независимо от адресата:
local_delivery:
  driver = appendfile
  file = /var/mail/testmail
  delivery_date_add
  envelope_to_add
  return_path_add
# group = mail
# mode = 0660

В таком случае, все письма без изменения адресата будут складываться в каталог /var/mail/testmail
Ответ написан
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Данная команда подойдет под ваши запросы?:
sudo python -m smtpd -n -c DebuggingServer localhost:25
Ответ написан
Комментировать
akelsey
@akelsey
Искать почтовый сервер с функцией Catchall, простейши и бесплатный под Win есть hMailServer например.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы