[Comm] Maildrop filtering

Dmitry Lebkov =?iso-8859-1?q?dima_=CE=C1_sakhalin=2Eru?=
Чт Май 15 16:37:28 MSD 2003


On Thu, 15 May 2003 13:35:36 +0400
Прокопьев Евгений <john на rmts.donpac.ru> wrote:

> Dmitry Lebkov пишет:
> 
> > А в этом случае делается - выполняется от пользователя $LOGNAME.
> > 
> > 
> >>Еще мне следующее непонятно в логе:
> >>
> >>to=<john на myserver.ru>, relay=local, delay=0, status=deferred
> >(temporary>failure. Command output: /usr/bin/maildrop-userdb: Unable
> >to open >mailbox. )
> > 
> > 
> > Права на ящик, указанный в "сс" не позволяют maildrop-userdb
> > (исполняемый от ползователя john) записать туда что-либо.
> > 
> > 
> >>Ну допустим, maildrop не может получить доступ к ящику 
> >><john на myserver.ru>, хотя это не так (без cc все работает). Почему он
> >
> >>вообще этим занимается, сначала ведь надо обработать 
> >>/etc/courier-imap/maildroprc, а уже затем пытаться положить почту в 
> >><john на myserver.ru>, если не указано иное.
> > 
> > 
> > Вот он и обрабатывает общесистемный maildroprc. На нем и
> > обламывается с сообщением: Unable to open mailbox.
> > 
> 
> А как вообще тогда правильно решить задачу? Необходимо дублировать 
> определенные письма, выкладывая их в общую папку и в персональную для
> alex.

Все зависит от того, как организована доставка почты вообще. В каком
формате хранится, что alex использует для получения почты - IMAP или
POP3, alex и john - это учетные записи в системе или виртуальные
почтовые ящики? После ответов на эти вопросы можно будет думать над
задачей ...

Да, в процессе доставки почты локальным учетным записям maildrop
выполняется с UID/GID пользователя, которому производится доставка.
Т.е. если alex и john - локальные учетные записи и ты хочешь скопировать
сообщение, которое идет к john, в ящик к alex - оба этих пользователя
должны иметь одну и ту же _основную_ группу (Note: в ALM, при создании
пользователя, создается и группа с таким же именем и по-умолчанию она
является основной для этого пользователя).
 
> Я включил пользователя 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-папка с соответствующими правами;
 - виртуальные почтовые ящики

> Нельзя ли из /etc/courier-imap/maildroprc отдать письмо MTA или
> положить в  /var/spool/mail/alex от имени alex?

В процессе фильтрации, сообщение можно отдать на STDIN внешней
программы. man maildirfilter. Но имей ввиду, что в случае доставки
того же сообщения через MTA ты получищь mail loop, т.к. информация
о получателе останется без изменения и сообщение снова попадет
под общесистемный фильтр.

Вобщем, вариантов - море. Сообщай подробности конфигурации, а там
что-нить придумаем ... ;)

--
WBR, Dmitry Lebkov



Подробная информация о списке рассылки community