Для примера, выбрал Postfix. Просто потому, что я его постоянно использую. Для антиспама раньше использовал Spamassassin, но он очень тяжелый. Посему, искал в интернете другие решения, пока не наткнулся на Postgrey.
Итак, приступаем:
/etc/>cd /usr/ports/mail/postgrey/usr/ports/mail/postgrey/>make install clean
После завершения, добавляет Postgrey в автозапуск
/etc/>cat /etc/rc.conf | grep postgreypostgrey_enable=”YES”/etc/>
В main.cf postfix’a добавляем следующее:
check_policy_service inet:127.0.0.1:10023
Данная строчка должна располагаться после reject_unauth_destination в секции smtpd_recipient_restrictions.Вот и все. Для точности, перегружаете сервер. Если что не работает, смотрите логи:
Jul 14 13:25:06 mail postfix/smtpd[2291]: connect from ffe6.ukr.net[195.214.192.23]Jul 14 13:25:07 mail postfix/cleanup[2294]: 0703157B03F: message-id=<20080714102507.0703157B03F@mail.test.net.ua>Jul 14 13:25:07 mail postfix/qmgr[1402]: 0703157B03F: from=<>, size=260, nrcpt=1 (queue active)Jul 14 13:25:07 mail postfix/smtp[2295]: 0703157B03F: to=<user@ukr.net>, relay=mxs.ukr.net[195.214.192.100]:25, delay=0.94, delays=0.01/0.01/0.92/0.01, dsn=2.0.0, status=deliverable (250 Accepted)Jul 14 13:25:07 mail postfix/qmgr[1402]: 0703157B03F: removedJul 14 13:25:10 mail postgrey[719]: action=greylist, reason=new, client_name=ffe6.ukr.net, client_address=195.214.192.23, sender=user@ukr.net, recipient=phenix@test.net.uaJul 14 13:25:10 mail postfix/smtpd[2291]: NOQUEUE: reject: RCPT from ffe6.ukr.net[195.214.192.23]: 450 4.2.0 <phenix@test.net.ua>: Recipient address rejected: Greylisted, see http://postgrey.schweikert.ch/help/test.net.ua.html; from=<user@ukr.net> to=<phenix@test.net.ua> proto=ESMTP helo=<ffe6.ukr.net>Jul 14 13:25:10 mail postfix/smtpd[2291]: disconnect from ffe6.ukr.net[195.214.192.23]
Поздравляю, у Вас все работает.