URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 27897
[ Назад ]

Исходное сообщение
"Procmail и виртуальные пользователи"

Отправлено vasily , 21-Мрт-03 12:59 
Люди подскажите, как procmail'у передать параметром имя домена, что бы можно было в $HOME/.procmailrc указать
DOMAIN=$2
MAILDIR=/var/spool/vmail/$DOMAIN
У меня имеется только $1 который соответствует имени пользователя которому перенаправляется почта согласно virtualusertable
@domain.com owner

вот кусок вывод cat /etc/mail/sendmail.cf | grep procmail
------------------ cut -----------------------
#####  $Id: local_procmail.m4,v 8.21.42.1 2002/11/17 04:25:07 ca Exp $  #####
#####  $Id: local_procmail.m4,v 8.21.42.1 2002/11/17 04:25:07 ca Exp $  #####
Mlocal,         P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
                A=procmail -Y -a $h -d $u
#####  $Id: procmail.m4,v 8.22 2001/11/12 23:11:34 ca Exp $  #####
Mprocmail,      P=/usr/bin/procmail, F=DFMSPhnu9, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP/HdrFromSMTP,
                A=procmail -Y -m $h $f $u
------------------ cut -----------------------


Содержание

Сообщения в этом обсуждении
"Procmail и виртуальные пользователи"
Отправлено vasily , 21-Мрт-03 16:49 
Другими словами мне надо раскидать почту по ящикам вида /var/spool/vmail/domain.com/user
как это сделать ? помогите !

"Procmail и виртуальные пользователи"
Отправлено vasily , 26-Мрт-03 21:18 
>Другими словами мне надо раскидать почту по ящикам вида /var/spool/vmail/domain.com/user
>как это сделать ? помогите !

Есть такой вариант:

в /etc/mail/access
to:virtdomain.com RELAY

в virtualusertable:
@virtdomain.com !

в mailertable:
@virtdomain.com procmail:/path/to/virtdomain.com.rc

в /path/to/virtdomain.com.rc
VIRTUSER=$1
DOMAIN=virtdomain.com
MAILDIR=/var/spool/vmail/$DOMAIN
:0
$VIRTUSER

-----------------------------------------------------
этот вариант не подходит по нескольким причинам:
1. невозможно отслеживать disc quota для владельца домена, т.к. procmail в данном случае создаёт mailbox под своими правами [ rw------- root.root ]
2. не совсем удобно мастерить web интерфейс для редактирования custom фильтров для каждого домена

тогда есть такой вариант:
в /etc/mail/virtusertable
@virtdomain.com     owner+%1

в /etc/mail/local-host-names
virtdomain.com

в /home/owner/.procmailrc
VIRTUSER=$1
MAILDIR=/home/mail
:0
$VIRTUSER

-----------------------------------
недостатками этого метода является:
1. невозможность написания custom фильтров для каждого домена, т.к. у owner'a может быть несколько доменов. причину я вижу в том, что не возможно передать domain получателя или хотя бы весь адрес получателя, а не только user из sendmail в procmail в переменную $1, если это каким то образом возможно, тогда эта проблема сходу решается.

короче в идеале хотелось бы поиметь такую возможность
в /home/owner/.procmailrc
VIRTUSER=$1
DOMAIN=$2
INCLUDERC=.$DOMAIN.rc

или
VIRTUSER=`echo $1 | cut -d"@" -f1`
DOMAIN=`echo $1 | cut -d"@" -f1`
INCLUDERC=.$DOMAIN.rc


"Procmail и виртуальные пользователи"
Отправлено vasily , 27-Мрт-03 14:38 
Знатоки sendmail и procmail !
неужели никто не делал virtual домены через procmail !