[Comm] Maildrop filtering
Прокопьев Евгений
=?iso-8859-1?q?john_=CE=C1_rmts=2Edonpac=2Eru?=
Пт Май 16 13:23:49 MSD 2003
Dmitry Lebkov пишет:
>>А как вообще тогда правильно решить задачу? Необходимо дублировать
>>определенные письма, выкладывая их в общую папку и в персональную для
>>alex.
>
>
> Все зависит от того, как организована доставка почты вообще. В каком
> формате хранится, что alex использует для получения почты - IMAP или
> POP3, alex и john - это учетные записи в системе или виртуальные
> почтовые ящики? После ответов на эти вопросы можно будет думать над
> задачей ...
Задача в целом такая. Есть группа разработчиков, для общения которых
имеется shared folder, в который они пишут (это последовательно
обрабатывают Postfix и Maildrop со своим /etc/courier-imap/maildroprc),
и из которой читают посредством Courier IMAP. Есть некоторые (alex),
которые сидят на диалапе, и просто не могут синхронизироваться с shared
folder, даже при небольшом количестве писем, просто не удается дождаться
окончания синхронизации. Ну а читать в онлайне им, понятное дело,
неприкольно. Вот им и надо дать доступ через POP3, а копии писем
складывать туда.
> Да, в процессе доставки почты локальным учетным записям maildrop
> выполняется с UID/GID пользователя, которому производится доставка.
> Т.е. если alex и john - локальные учетные записи и ты хочешь скопировать
> сообщение, которое идет к john, в ящик к alex - оба этих пользователя
> должны иметь одну и ту же _основную_ группу (Note: в ALM, при создании
> пользователя, создается и группа с таким же именем и по-умолчанию она
> является основной для этого пользователя).
# id john
uid=500(john) gid=10(wheel)
groups=10(wheel),12(mail),52(cvs),104(webmaster),503(arbuz)
# id alex
uid=502(alex) gid=10(wheel)
groups=10(wheel),52(cvs),104(webmaster),503(arbuz)
# ls -l /var/spool/mail/alex/
total 14
-rw-r--r-- 1 alex mail 12 Apr 27 13:13
courierimapsubscribed
-rw-r--r-- 1 alex mail 15 Apr 27 13:13 courierimapuiddb
drwxrwx--- 2 alex mail 48 Apr 26 16:22 cur
drwxrwx--- 2 alex mail 104 May 15 08:40 new
drwx------ 3 alex mail 72 Apr 27 13:19 shared-folders
-rw-r--r-- 1 alex mail 58 Apr 26 19:54 shared-maildirs
drwxrwx--- 2 alex mail 48 May 15 08:40 tmp
# ls -l /var/spool/mail | grep alex
drwxrwx--- 7 alex mail 280 Apr 27 13:16 alex
>>Я включил пользователя john, от которого доставляется почта, в группу
>>mail, и разрешил этой группе писать в /var/spool/mail/alex и все
>>подпапки, но все равно:
>>
>>[john на myserver john]$ echo hello | maildrop-userdb alex на myserver.ru
>>maildrop-userdb: Unable to open filter file, errno=2.
>>
>>Видимо, необходим доступ еще и к /home/alex/.mailfilter или как там
>>его, но это уж слишком.
>
>
> Нет, этого не нужно.
А в чем же тогда дело?
>>Да и вообще манипуляции с группой mail тоже не очень хороши. Есть ли
>>более изящные способы (кроме mailman - это как пушкой по мухе).
>
>
> Мне видится три варианта:
> - общая основная группа у всех почтовых аккаунтов, для которых
> требуется описанный тобой способ филтьрации;
+ права доступа для группы. Но это вроде есть. Кстати, почему именно
_основная_ ?
> - отдельная Maildir-папка с соответствующими правами;
Да, так все и работает по-нормальному, но тут исключительная ситуация
> - виртуальные почтовые ящики
Ох... Не читал ты мое письмо чуть ниже?
# echo hello | maildrop-userdb -d marconi на ugtovar.ru
[root на ugtovar etc]# su - mail -s /bin/bash
-bash-2.05b$ echo hello | maildrop-userdb -d marconi на ugtovar.ru
Все прекрасно. А вот результаты echo hello | mail marconi на myserver.ru
May 16 13:16:23 ugtovar postfix/pickup[28624]: 5600D1C68: uid=0 from=<root>
May 16 13:16:23 ugtovar postfix/cleanup[29086]: 5600D1C68:
message-id=<20030516091623.5600D1C68 на ugtovar.ru>
May 16 13:16:23 ugtovar postfix/qmgr[18962]: 5600D1C68:
from=<root на ugtovar.ru>, size=279, nrcpt=1 (queue active)
May 16 13:16:23 ugtovar postfix/local[29088]: 5600D1C68:
to=<marconi на ugtovar.ru>, relay=local, delay=0, status=bounced (unknown
user: "marconi")
Я знаю, что Postfix не по твоей части, но может идейку какую-нибудь, а ? ;-)
>>Нельзя ли из /etc/courier-imap/maildroprc отдать письмо MTA или
>>положить в /var/spool/mail/alex от имени alex?
>
>
> В процессе фильтрации, сообщение можно отдать на STDIN внешней
> программы. man maildirfilter. Но имей ввиду, что в случае доставки
> того же сообщения через MTA ты получищь mail loop, т.к. информация
> о получателе останется без изменения и сообщение снова попадет
> под общесистемный фильтр.
Угу, думал уже об этом
> Вобщем, вариантов - море. Сообщай подробности конфигурации, а там
> что-нить придумаем ... ;)
С stdin все-таки наверняка я выкручусь (хотя может это просто только на
первый взгляд).
А вот как быть с виртуальными почтовыми ящиками, для которых мне вообще
не нужны записи в /etc/passwd, я не могу придумать. Может Postfix вообще
так не умеет? Т.е. ищет $LOGNAME в /etc/passwd в обязательном порядке, а
если не нашел, то в master.cf на maildrop не смотрит, а просто
выплевавает, да и все?
--
С уважением, Прокопьев Евгений
Подробная информация о списке рассылки community