[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Postfix: проверка получателя



On Tue, 09 Oct 2007 12:59:31 +0300 Покотиленко Костик wrote:

 ПК> В Вто, 09/10/2007 в 12:14 +0300, Mikolaj Golub пишет:
 >> On Tue, 09 Oct 2007 11:20:40 +0300 Покотиленко Костик wrote:
 >> 
 >>  ПК> Да всё оказалось гораздо проще, благодаря тем строчкам, которые я
 >>  ПК> привёл, postfix стал спрашивать cyrus о ящиках напрямую через протокол
 >>  ПК> LMTP. И не надо уме знать в каком именно виде ящики хранятся. Осталось с
 >>  ПК> контент фильтрами разобраться...
 >> 
 >> Он не "стал спрашивать", а просто пытается залить письмо туда (предварительно
 >> пропустив через спам фильтры) и получает отлуп о несуществующем мейлбоксе от
 >> цируса. А для того, чтоб постфикс сначала проверил (спросил), есть ли такой
 >> пользователь, еще на этапе rcpt to (до приема DATA и соответственно
 >> фильтрации), нужно соответственно smtpd_recipient_restrictions и recipient_maps
 >> настроить (если такое возможно в случае с cyrus).

 ПК> Скорее всего Вы не правы. Именно спрашивает. Мне удалось включить
 ПК> spamassasin через milter, clamav пока отключил, и всё стало как надо.

 ПК> Если письмо адресовано несуществующему получателю, оно отфутболивается
 ПК> сразу после RCPT TO, дальше письмо передаётся контент фильтру, и по
 ПК> результату его работы либо отфутболивается либо попадает в очередь.

 ПК> Если не прав, поправьте, пока 100% не проверил, сужу по логам.

 ПК> Вот фрагменты конфигов:

 ПК> main.cf:
 ПК> --------------------------------------------------------
 ПК> mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
 ПК> virtual_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
 ПК> local_recipient_maps = $virtual_mailbox_maps

$virtual_mailbox_maps на сколько я вижу у Вас пустой? Поэтому
local_recipient_maps тоже пустой, т.о. Вы отключили "user unknown" режект (как
гласит документация).

 ПК> smtpd_client_restrictions = check_client_access
 ПК> cidr:/etc/postfix/access, permit_sasl_authenticated

 ПК> address_verify_negative_cache = yes
 ПК> address_verify_negative_expire_time = 3d
 ПК> address_verify_negative_refresh_time = 2h 

 ПК> address_verify_positive_cache = yes
 ПК> address_verify_positive_expire_time = 3d
 ПК> address_verify_positive_refresh_time = 2h 

 ПК> address_verify_default_transport = $default_transport
 ПК> address_verify_local_transport = $local_transport
 ПК> address_verify_relay_transport = $relay_transport
 ПК> address_verify_relayhost = $relayhost
 ПК> address_verify_transport_maps = $transport_maps
 ПК> address_verify_virtual_transport = $virtual_transport

 ПК> smtpd_recipient_restrictions = permit_sasl_authenticated,
 ПК> reject_unauth_destination, reject_unverified_recipient,
 ПК> reject_unlisted_recipient

 ПК> smtpd_milters = unix:/sockets/spamass.sock
 ПК> milter_default_action = tempfail
 ПК> --------------------------------------------------------

 ПК> master.cf:
 ПК> --------------------------------------------------------
 ПК> smtp      inet  n       -       -       -       -       smtpd
 ПК> # To add support for spamassasin
 ПК> #smtp      inet  n       -       -       -       -       smtpd -o
 ПК> content_filter=spamassassin:
 ПК> --------------------------------------------------------

 ПК> Фрагменты логов:
 ПК> --------------------------------------------------------
 ПК> Oct  9 12:56:20 darkstar postfix/smtpd[21708]: connect from
 ПК> email.wccta.net[207.177.68.11]
 ПК> Oct  9 12:56:21 darkstar postfix/smtpd[21708]: NOQUEUE: reject: RCPT
 ПК> from email.wccta.net[207.177.68.11]: 450 4.1.1
 ПК> <secretbr@expometeor.com>: Recipient address rejected: undeliverable
 ПК> address: host darkstar[/var/run/cyrus/socket/lmtp] said: 550-Mailbox
 ПК> unknown.  Either there is no mailbox associated with this 550-name or
 ПК> you do not have authorization to see it. 550 5.1.1 User unknown (in
 ПК> reply to RCPT TO command); from=<anniavanessa@gmail.com>
 ПК> to=<secretbr@expometeor.com> proto=ESMTP helo=<email.wccta.net>
 ПК> Oct  9 12:56:21 darkstar postfix/smtpd[21708]: disconnect from
 ПК> email.wccta.net[207.177.68.11]

Все равно здесь что-то не так :-). Клиент получает 450 вместо 550 и будет
продолжать в течение n дней слать письмо на нечуществующий адрес.

Здесь до конца мне не понятно. Я всегда предполагал, что постфикс сначала
принимает письмо в очередь, а потом уже пробует его доставить в
мейлбокс. Здесь же действительно получается, что smtpd сразу передает RCPT
мейлбокс-траспорту (возможно для проверки юзера, тогда почему 450
возвращает?). Что-то не могу с ходу найти в документации объянения
происходящему.

-- 
to my, trociny



Reply to: