Я занимаюсь разработкой веб-приложения, которое рассылает пользователям электронные письма. Я обычно использовал Argosoft Mail Server (Freeware) в среде Windows в качестве SMTP-сервера, на котором я включил ретрансляцию, но отключил фактическую доставку. Это позволяет мне направлять мое веб-приложение на локальный сервер и проверять все отправленные электронные письма, просматривая исходящую очередь. Кроме того, чтобы быть на 100% безопасным, я бы поставил несуществующий DNS-сервер, чтобы гарантировать, что если я когда-нибудь случайно включу доставку, сервер все равно не сможет найти какие-либо внешние адреса и доставить почту.
Теперь, когда я занимаюсь разработкой на машине OSX, я ищу аналогичное решение. По умолчанию OSX поставляется с установленным Postfix, поэтому я решил, что просто использую его и настрою аналогичным образом. Однако я не могу нигде найти возможность отключить всю исходящую электронную почту. По сути, я хочу настроить Postfix как открытый сервер ретрансляции, но отключить доставку всей электронной почты. Затем я могу посмотреть на исходящую очередь и проверить, соответствуют ли электронные письма ожидаемым.
Есть ли способ легко это сделать? Или есть лучшее решение, которое я могу использовать?
В main.cf
, поместите следующие check_recipient_access
как первый вариант smtp_sender_restrictions
2
smtpd_sender_restrictions =
check_recipient_access regexp:/etc/postfix/onhold
...
...
Создайте /etc/postfix/onhold
со следующим содержанием
/example\.com$/ DUNNO
/^/ HOLD
Все будет помещено в очередь ожидания, кроме электронной почты для example.com.
База на постфиксе сайт, изменение
queue_run_delay = 3600
300 по умолчанию, что составляет 5 минут. Измените его на 3600, чтобы повторять попытку один раз в час. Вы можете попробовать изменить его на 86400 (24 часа). Я думаю, что у вас должно быть достаточно времени для тестирования и изучения электронной почты.
Я исследовал аналогичный вопрос, похоже, что postsuper -h ALL и postsuper -H ALL должны работать. http://www.postfix.org/postsuper.1.html