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: