Я обсудил с нашей командой разработчиков, установить ли локальный MTA на сервер приложений или использовать сервер MTA, расположенный во внутренней сети, для отправки своих электронных писем. Есть плюсы и минусы для обоих решений.
Плюсы: программа, отправляющая электронное письмо, может доставить его в местный MTA и забыть о доставке, повторных попытках или любых ошибках, которые могут возникнуть.
Минусы: пользователь, отправляющий электронное письмо, может быть слишком поздно проинформирован о том, что при отправке письма возникла проблема. Программа может немедленно обнаружить, если удаленный сервер недоступен. Минусы: Безопасность. локальный MTA должен быть настроен соответствующим образом для обеспечения безопасности сервера. Минусы: дополнительный уровень сложности в процессе.
На мой взгляд, мы должны быть проще. Мы не говорим о программе, которая общается с серверами MTA, которые не контролируются нами и состояние которых нам неизвестно. На мой взгляд, наличие локального MTA необходимо, если вы не уверены в своих контрагентах, однако здесь программа доставит его в «известную» систему MTA. Так что думаю, что дополнительный слой не нужен. Кроме того, наличие локального MTA в каждой системе, пытающейся отправить электронные письма, также может привести к дополнительным проблемам/ошибкам и дополнительным административным задачам (обслуживание/установка исправлений). Кто-то может сказать, что в системе Unix у вас всегда есть работающий локальный MTA (sendmail), но в нашей организации мы упрощаем системы до минимума, чтобы гарантировать, что дополнительные службы не будут работать, что может привести к потенциальному риску.
Тем не менее, мне было бы очень интересно узнать, как вы будете проектировать инфраструктуру, имея в виду, что вы общаетесь с известной/контролируемой/отслеживаемой системой MTA. Или это просто вопрос точки зрения?
Большое спасибо за ваш отзыв.
Ив