Как мне внести домен в белый список для тестирования электронной почты UAT в моем макете SMTP?

#email #mocking #smtp #uat

Вопрос:

Проблема и цель

Моему текущему проекту необходимо выполнить приемочные тесты пользователей, которые включают тестирование электронных писем, таких как уведомления по электронной почте, когда требуются действия в системе.

Моя цель-создать настройку электронной почты, которая будет перехватывать все электронные письма, за исключением домена клиента.

База данных содержит реальные электронные письма (например, электронные письма клиентов и поставщиков), и она должна оставаться такой. Причина в том, что было бы громоздко менять все адреса электронной почты, и это все равно не помешало бы никому изменять электронные письма и отправлять их в реальный мир.

В настоящее время мы используем макет SMTP (Papercut SMTP). Он собирает все исходящие электронные письма в один почтовый ящик. Проблема в том, что почтовый ящик скоро будет переполнен из-за одновременного тестирования многими пользователями, и у пользователей также нет легкого доступа к клиенту Papercut.

Поэтому мне бы хотелось, чтобы решение перехватывало все исходящие электронные письма (как в настоящее время), но перенаправляло все электронные письма, которые должны быть доставлены в собственный домен клиента.

Текущее решение и альтернативы

В Papercut я могу настроить регулярное выражение и пересылать отдельные электронные письма. Однако я не могу динамически проверять домен электронной почты и пересылать его на тот же адрес электронной почты, если он находится в домене клиента.

Я также исследовал другие фиктивные SMTP-решения, в частности Mailtrap, smtp4dev, MockSMTP, MailHog, MailSlurper, MailCatcher, FakeSMTP, SMTP-ведро и LunaticSMTP.

Mailtrap потенциально может быть решением, и я спросил их об этом (я обновлю здесь, когда получу ответ). Остальные, похоже, не в состоянии сделать то, что мне нужно.

ОБНОВЛЕНИЕ: Mailtrap действительно обладает нужной функциональностью. Однако это платное решение.

Вопрос

Знаете ли вы какой-нибудь способ, которым я могу достичь этой цели? Или о каких-либо других/лучших способах сделать это?