From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 18 Nov 2002 17:45:19 +1000 From: Dmitry Lebkov To: sisyphus@altlinux.ru Subject: Re: [sisyphus] Maildrop+userdb Message-Id: <20021118174519.6c55debc.dima@sakhalin.ru> In-Reply-To: <3DD876A3.7060109@rmts.donpac.ru> References: <3DD876A3.7060109@rmts.donpac.ru> Organization: Sakhalin branch of DalSvyaz JSC X-Mailer: Sylpheed version 0.8.5 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit Sender: sisyphus-admin@altlinux.ru Errors-To: sisyphus-admin@altlinux.ru X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: sisyphus@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: On Mon, 18 Nov 2002 08:12:03 +0300 Прокопьев Евгений wrote: > Здравствуйте! > > Начал снова разбираться с userdb. > > /etc/postfix/master.cf: > > maildrop unix - n n - - pipe > flags=Ru user=mail argv=/usr/bin/maildrop-userdb -d ${recipient} > > Именно mail, а не vmail - у меня есть такой пользователь и я не хочу, > чтобы он сидел без дела > > /etc/postfix/main.cf: > > mailbox_command = /usr/bin/maildrop-userdb -d $LOGNAME > maildrop_destination_recipient_limit = 1 > > /etc/courier-imap/userdb: > > shared home=/var/spool/mail/shared|mail=/var/spool/mail/shared|uid=8|gid=12 > > /var/spool/mail/shared создавался так: > > su - mail > maildirmake -S /var/spool/mail/shared > > В README.ALT из maildrop на предмет -d $LOGNAME@$DOMAIN ничего не нашел. Опс, похоже я это удалил за ненадобностью, но смотри ниже: Пакет maildrop-doc, файл README-ALT-maildrop (в самом конце): maildrop-userdb + Postfix: -------------------------- [skip] maildrop-userdb нормально работает в качестве MDA для системных mailbox'ов (как в формате Mailbox так и в формате Maildir) после замены в /etc/postfix/main.cf: mailbox_command = /usr/bin/procmail -a $DOMAIN -d $LOGNAME на mailbox_command = /usr/bin/maildrop-userdb -d $LOGNAME ^^^^^^^^^^^^^^^ это работает только (!) для системных mailbox'ов !!! если заменить -d $LOGNAME на -d $LOGNAME@$DOMAIN (возможно перед '@' нужно будет поставить '\') и в userdb описать всех пользователей в формате user@domain, то можно будет использовать maildrop как для системных учетных записей (в userdb описываешь соответствующие каталоги и реальные uid/gid), так и для виртуальных (как описано ниже). Правда, в случае $LOGIN@$DOMAIN имеется одно 'НО' - если системный пользователь не будет описан в userdb - почта ему не доставится, т.к. getpwnam('user@domain') вернет ошибку - пользователь с таким именем в системе врядли найдется. Наверное, я поэтому и не стал описывать такой вариант в README-ALT-maildrop ... :) ------ Как MDA для виртуальных доменов:(все как описано в README.postfix из пакета maildrop): /etc/postfix/master.cf: maildrop unix - n n - - pipe flags=Ru user=vmail argv=/usr/bin/maildrop-userdb -d ${recipient} /etc/postfix/main.cf: maildrop_destination_recipient_limit = 1 transport: virtual.domain maildrop: # adduser -r vmail -d /var/spool/vmail -s /bin/false # mkdir /var/spool/vmail # chown vmail.vmail /var/spool/vmail /etc/courier-imap/userdb: # см. man userdb dbuser@dvl1.sakhalin.ru home=/var/spool/vmail/dbuser|mail=/var/spool/vmail/dbuser|gid=116|uid=116 В файле userdb запись для пользователя должна быть в одну строку. Имя пользователя должно быть с доменом и uid/gid == uid/gid пользователя vmail. ^^^^^^^^^^^^^^^^^ а это для виртуальных. А в твоем случае, ты создаешь виртуального пользователя shared и пытаешся доставить почту, используя конфиг для локальных ящиков. Т.е. для того, чтобы твоя конфигурация работала, необходимо в transport добавить направление: athlon.home maildrop: и в userdb описать пользователя как shared@athlon.home. Правда, я не знаю (вернее вроде бы я такое делал - но не помню результата %) как поведет себя postfix если ему в transport дописать имя домена, которое он считает локальным (т.е. почта в этот домен доставляется с использованием mailbox_command). Имеется широкое поле для экспериментов ... ;) > Постфикс перезапущен, userdb пересоздана. И тем не менее: > > [root@athlon mail]# echo hello | mail shared > [root@athlon mail]# tail /var/log/mail/all > Nov 17 12:10:21 athlon postfix/pickup[3620]: 186BF72DA: uid=0 from= > Nov 17 12:10:21 athlon postfix/cleanup[3934]: 186BF72DA: > message-id=<20021117091021.186BF72DA@athlon.home> > Nov 17 12:10:21 athlon postfix/qmgr[3621]: 186BF72DA: > from=, size=282, nrcpt=1 (queue active) > Nov 17 12:10:21 athlon postfix/local[3936]: 186BF72DA: > to=, relay=local, delay=0, status=bounced (unknown > user: "shared") WBR, Dmitry Lebkov PS. Для начала проверяй с помощью maildrop-userdb доставку почты в ящик: # cat some_text_file | maildrop-userdb -d user и только после успешой доставки таким методом пробуй использовать постфикс - проще будет разбираться, где проблема. И документацию лучше читать полностью, а не выборочно ... ;)