Я использую сервер Debian 7.9 с Postfix 2.9.6 и Spamassassin 3.3.2.
Одна из стандартных проверок, которую выполняет Spamassassin, - это проверка записи rDNS. Я предполагаю, что он получает эту информацию из Received: from ...
заголовок в сообщении, переданном от Postfix.
Теперь довольно часто Postfix не может определить имя хоста для IP-адреса, что излишне дает худший результат, чем заслуживает, поскольку почти всегда имя хоста действительно существует. Если я проверю эти сообщения вручную, я вижу, что в упомянутом заголовке часто говорится Received: from example.com (unknown [1.2.3.4]) by ...
в то же время, если я попытаюсь разрешить IP-адрес самостоятельно (в оболочке сервера), он будет работать без проблем.
В чем проблема? Может быть, есть слишком агрессивный тайм-аут, из-за которого ему не хватает времени? Если да, то есть ли способ отрегулировать этот тайм-аут? Мой сервер не получает тысячи сообщений в минуту, поэтому подождать еще несколько секунд не помешает. Поможет ли переключение на DNS через TCP решить эту проблему? Если да, как я могу сказать Postfix использовать TCP для DNS-запросов?
Как оказалось, я запускал свою установку Postfix с настройкой chroot, установленной по умолчанию «да». После того, как я установил для него значение «no» (поскольку я не использую chroot), похоже, проблема решена.
Я до сих пор не понимаю, почему раньше вроде не было проблем, а теперь работает.
Рассматриваемая настройка находится в /etc/postfix/master.cf:
(Источник)
# =============================================================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
# =============================================================
smtp inet n - n - - smtpd
# This had to be set to "n": ^