В postfix включена опция проверки наличия реверсивной записи «reject_unknown_client_hostname», и она отсекает приличное количество спаммеров. Но из-за нестабильной работы DNS в России (самый пик был в марте, но и сейчас проблема периодически всплывает) иногда с сообщением «550 5.7.1 Client host rejected: cannot find your hostname» откидываются вполне себе легальные узлы, с нормально прописанной зоной. При этом использовать публичные серверы (типа 1.1.1.1) не получится, так как в этом случае перестанет работать DNSBL (в частности Spamhaus отвергает запросы с публичных DNS).
Есть ли способ перепроверить несколько раз с интервалом запись перед тем как отшивать клиента? Быть может по аналогии с принципом работы грейлиста. Или проверить запись, используя сразу несколько DNS-серверов. Или один, но не тот же, который используется для проверки по DNSBL.
Смотрите unknown_client_reject_code - по умолчанию он должен быть 450 и это как раз инструктирует клиента попробовать отправку позже. Если у вас 550 - должно быть вы его так прописали.
Пропишите публичный DNS вторым резолвером, чтобы он дергался только в случае если первый не ответил.
Да, действительно коды ошибок были не по умолчанию. Скорее всего их возврат к дефолтным проблему решит (хоть письма и будут идти дольше). Как повлияет на количество подключений от спамботов - это вопрос, требующий наблюдения. Спасибо!