>Удаленный хост получает соединение на 25 порт и получает команду
>mail from: vasya@catalysis.ru
>Почтовый сервер делает проверку типа dig catalisys.ru MX
>Получает ответ elm.catalysis.ru
>Зная ИП адрес с которого идет письмо, проверяем dig -x 193.124.35.71
>Получаем elm.catalysis.nsk.su
>Сравнением стрингов получаем elm.catalysis.ru<>elm.catalysis.nsk.su
>Обрываем соединение.
>---
>Какие с этим алгоритмом проблемы? Вот теперь смотрите:
1 у меня есть 2 домена catalysis.ru и catalysis.nsk.su, за которыми стоит одна и таже сеть.
2 письма на xxx@catalysis.ru и xxx@catalysis.nsk.su должны попадать одному и тому же юзеру.
3 юзер сам по собственному желанию выбирает, с какого адреса он шлет почту: xxx@catalysis.ru или xxx@catalysis.nsk.su
4 я должен иметь 2 PTR записи для адреса 193.124.35.71 -- по одной для каждого домена. В противном случае один из доменов перестает работать. Это эмпирический факт.
Имеем:
1 при не правильной организации проверки на принимающей стороне ~25% писем будет отбиваться.
2 если заставить постфикс на моем серваке всегда говорить только один домен, то перестает работать второй (отдельные умельцы проверяют строку из HELO и домен адресата, блин!, давил бы.)
3 единственный разумный вариант проверки по обратному резолвингу:
а) видим, что мейл фром: user@domain.com
б) проверяем список МХов для domain.com
в) составляем список IP: для _каждого_ МХа выбираем _все_ его IPшники и добавляем к списку
г) проверяем, есть ли IP, с которого идет коннект, в этом списке. Если есть принимаем письмо, если нет, отбриваем.
Все бы ничего, да только шаг В никто не выполняет :( Берут первый попавшийся адрес и считают что это единствено возможный вариант.