From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <473D6719.1090508@junior.esoo.ru> Date: Fri, 16 Nov 2007 14:47:05 +0500 From: Anton Kvashin User-Agent: Thunderbird 2.0.0.6 (X11/20070925) MIME-Version: 1.0 To: ALT Linux sysadmin discuss References: <473854EF.1060907@stc.donpac.ru> <473B6E14.9060604@solin.spb.ru> <473C1A51.20205@solin.spb.ru> In-Reply-To: <473C1A51.20205@solin.spb.ru> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Sysadmins] local recipient table for postfix via dovecot passdb X-BeenThere: sysadmins@lists.altlinux.org X-Mailman-Version: 2.1.9 Precedence: list Reply-To: ALT Linux sysadmin discuss List-Id: ALT Linux sysadmin discuss List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Nov 2007 13:05:04 -0000 Archived-At: List-Archive: Aleksey Avdeev пишет: > Vladimir V. Kamarzin пишет: >>>>>>> On 15 Nov 2007 at 02:52 "AA" == Aleksey Avdeev writes: >>>> В принципе можно вообще не использовать таблицы, а обойтись лишь recipient >>>> verification, заведя отдельный restriction_class, в котором бы осуществлялась >>>> проверка reject_unverified_recipient для локальных доменов. См. пример >>>> http://www.freesource.info/wiki/Dokumentacija/Postfix/BackupMX/recipientverification/rejectunverifiedrecipient?v=ze5& >>>> >>>> Допустим, SMTP-клиент пытается залить нам мыло для юзера user@domain. Постфикс >>>> генерирует конверт и пытается доставить его допустим по lmtp dovecot-у. Если >>>> Dovecot говорит 550 user unknown, постфикс SMTP-клиента посылает тоже с 550, а >>>> точнее, клиенту будет процитирован ответ dovecot-а. Соответственно, если >>>> Dovecot говорит 450, SMTP-клиенту отдаётся тоже 450. >> AA> А можно ли вклиниться в эту идиллию так, чтобы при этом (срыве >> AA> доставки по lmtp) сообщения о недоставке (от MAILER-DAEMON@), >> AA> отправителю не уходили (кроме списка доменов заданного руками)? >> >> Гмм, я вижу только один вариант "срыва доставки по lmtp", приводящий к >> генерации баунсов: если в кэше результат проверки конкретного >> реципиента положительный (status=deliverable), а MDA по какой-либо причине >> перестал принимать почту для данного реципиента (например исчерпана квота, >> юзера удалли, и т.п.), то постфикс будет слать баунсы на envelope-from до тех >> пор, пока не истечёт время address_verify_positive_refresh_time (default: >> 7d). В общем, тут важно правильно подобрать параметры кэширования. > > Распишу подробнее: > > 1. В качестве imap сервера использую cyrus (не dovecot), и списком > пользователей владеет именно он. Он может видеть/использовать список пользователей из sql/ldap, т.е. не единоличное владение. > 2. Всю приходящую на домен почту (после всех поверок) -- postfix > пересылает cyrus`у по lmtp. Не использую postfix, но по памяти virtual_table можно направить в sql/ldap. И он на этапе rcpt to (если postfix может такое) говорить 550 unknown user. > 3. В качестве одного из промежуточных фильтров (до передачи по lmtp) -- > используется amavis-new (который тоже в какой-то момент перестал > проставлять заголовки, но вирусы по прежнему ловит)... > > Пока писал, подумал что наблюдаемое вполне может быть из-за amavis`а > (и/или любого другого фильтра с отложенной обработкой), т. к. он > обрабатывает сообщения уже находящиеся в очереди postfix`а, _после_ > завершения входящей SMTP сессии. Т. е. из-за использования в процессе > доставки фильтра обрабатывающего очередь, postfix получает отлуп от > принимающего по lmtp не в момент существования входящей SMTP сессии, а > уже после её завершения... Посмотрите exim. Он позволяет делать контентную фильтрацию в SMTP-сессии на этапе DATA, без прослоек. -- Anton Kvashin