Моя проблема в основном сводится к следующему: Exchange (2016) принимает почту для несуществующих адресов, а затем отправляет DSN (уведомление о состоянии доставки), чтобы уведомить отправителя об ошибке. Я хочу, чтобы вместо этого он немедленно отклонял почту, отправленную на несуществующие адреса, с ответом 550.
Больше фона
Моя установка выглядит примерно так:
+-----+
Datacenter Office |User1|
+----------+ +---------+ +----------+ +-----+ +-----+
| Internet | <--> | Postfix | <--> | Exchange | |UserN|
+----------+ +---------+ +----------+ +-----+ +-----+
|User2|
+-----+
Входящая почта сначала попадает на мой постфиксный сервер, который выполняет сканирование на вирусы, фильтрацию спама и карантин. Затем он пересылается на наш офисный сервер Exchange.
Postfix настроен для проверки получателя на сервере обмена. Это включает в себя подключение к серверу и выполнение частичной SMTP-транзакции вплоть до RCPT TO
команда. Если сервер отвечает кодом 250, получатель считается действительным.
Проблема в том, что Exchange всегда отвечает 250 ... он, по-видимому, даже не пытается выполнить какую-либо проверку после получения RCPT TO
команда.
Я выполнил инструкции на technet по включению функции защиты от спама и проверки получателя в Exchange, но я понятия не имею, что он сделал, потому что поведение SMTP-сервера Exchange точно такое же, как и до того, как я что-либо сделал.
Вот команды, которые я выполнил на сервере Exchange, пытаясь заставить это работать.
& $env:ExchangeInstallPath\Scripts\Install-AntiSpamAgents.ps1
Restart-Service MSExchangeTransport
Set-RecipientFilterConfig -Enabled $true
Set-RecipientFilterConfig -RecipientValidationEnabled $true
Проверка получателя Exchange предполагаемый чтобы он выполнял немедленную проверку после получения RCPT TO
? (А если нет, то что именно он делает?)
Этот вопрос похож, и его принятый ответ сработал для меня.
Чтобы проверка получателя проводилась сразу после RCPT TO
вы должны быть подключены к Hub Transport (в отличие от Frontend Transport). Я отредактировал существующий транспортный сервер-концентратор, привязанный к порту 2525, установив флажок, чтобы разрешить «анонимным пользователям» подключаться к нему (не забудьте заблокировать его другими способами, чтобы только известные серверы могли получить к нему доступ).
Затем я изменил настройки своего шлюзового (постфиксного) сервера, чтобы использовать порт 2525 для связи с этим сервером обмена. На этом этапе проверка получателя начала работать должным образом.
Я бы переключился на поиск LDAP вместо того, чтобы пытаться делать сбой при SMTP-коммуникации. Намного надежнее.