Мне нужно провести много тестов локальной электронной почты (в macOS 10.14), поэтому для большинства задач я использую поддельный SMTP-сервер на порту 2500, однако мне также нужно перехватывать сообщения, отправленные напрямую через локальный sendmail
бинарный, а это на самом деле означает использование настоящего почтового сервера, который может передавать их на мой поддельный почтовый сервер. Я пытаюсь использовать для этого postfix, но это действительно не очень хорошо. Моя цель - сделать так, чтобы он ретранслировал все сообщения для всех пользователей во всех доменах без фильтрации, шифрования или аутентификации. Я не хочу, чтобы он вообще обращал внимание на локальные учетные записи пользователей, и это, кажется, требует отключения локального агента доставки постфикса, и я не нашел, как это сделать.
Моя конфигурация в основном сводится к следующему:
local_transport = local:$myhostname
mydestination = $myhostname, localhost.$mydomain, localhost
local_recipient_maps =
relayhost = localhost:2500
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/local_passwd
smtp_use_tls = no
smtp_tls_security_level = none
compatibility_level = 2
fallback_transport = localhost:2500
Моему поддельному почтовому серверу требуется авторизация, хотя он ничего не проверяет, и любое имя пользователя или пароль будут работать, поэтому в нем есть фиктивная запись. local_passwd
файл.
Просмотр журналов в macOS крайне болезненен; лучший подход, который я нашел до сих пор:
sudo log stream --predicate '(process == "cleanup") || (process == "pickup") || (process == "qmgr") || (process == "error")' --info
Когда я отправляю ему сообщения напрямую с помощью sendmail, я вижу, что он с радостью принимает сообщения в локальные учетные записи, но не передает их. Он также отклоняет сообщения, отправленные на несуществующие учетные записи, например user@example.com
что я хочу принять и передать.
Сообщения попадают в почтовый ящик, куда я могу добраться, если запустил mail
.
Что я пропустил?