From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <418092EA.5020407@solin.spb.ru> Date: Thu, 28 Oct 2004 10:34:18 +0400 From: "Aleksey Avdeev" User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.7.2) Gecko/20040808 X-Accept-Language: ru, be, uk, en-us, en MIME-Version: 1.0 To: community@altlinux.ru Subject: Re: HA: [Comm] ALM24: postfix+maildrop+courier References: In-Reply-To: X-Enigmail-Version: 0.85.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: multipart/mixed; boundary="------------020706030509050809050004" X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: community@altlinux.ru List-Id: Mailing list for ALT Linux users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Oct 2004 06:34:25 -0000 Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. --------------020706030509050809050004 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit Maksim N. Reziapkin пишет: > >>Структуру, если её ещё нет, может даже сам postfix создавать. В общем >>случае -- MDA. > > > структуру??? а у меся нет... :( > да еже забыл добавить, использую virtual user из базы... (не хочу заводить пользователей в системе). > > пробежал рядом резепт по созданию структуры, ели ее нет. поэксперементирую. Для maildrop-userdb использую пару скриптов mailusradd.sh и mailusrsync.sh (скрипты довольно сырые). Возможно их можно адаптировать и для maildrp-mysql. > > >>Какие? Если нужно просто поменять названия полей, так это настраивается, >>более тонкая настройка во многих случаях достигается с помощью where_field >>или как оно там, а если надо совсем тонкую... Ну, тут без залезания в >>исходники никак. Запрос там жёстко прошит, только сегодня смотрел. > > вот и я грю... что запросы жестко. про поле where_field что-то не увидел срузу... ну да лабдо, с этим поборолись путем добавления в базу нужных полей. > > > >>>-если отпровляем почту локально, то по каким-то причинам в базу лезем за >>>пользователем без доменного имени. Как сказать постфиксу, чтобы даже для >>>локальных пользователей добовлял доменное имя (или укажите где толково >>>про это написано) >> >>Кто выступает в роли MDA? Насколько я понял, maildrop-mysql сперва ищет по >>mysql пользователям (maildrop-ldap по ldap etc), а затем как раз ищет в >>системных, а в моем случае ещё и в ADS пользователях. > > да, в MDA у меня maildrop, maildrp-mysql в частности. > > жду ваш КакСде для выявления багов в нем... :))) и тестирования оного на ALM24 Для случая maildrop-userdb и postfix без sasl: $ sudo -H fgrep maildrop /etc/postfix/{master,main}.cf /etc/postfix/master.cf:maildrop unix - n n - - pipe /etc/postfix/master.cf: flags=DRhu user=virtual_mail argv=/usr/bin/maildrop-userdb -d ${recipient} /etc/postfix/main.cf:maildrop_destination_recipient_limit = 1 /etc/postfix/main.cf:mailbox_command = /usr/bin/maildrop-userdb -d $LOGNAME /etc/postfix/main.cf:virtual_transport = maildrop /etc/postfix/main.cf:fallback_transport = maildrop Как сделать виртуальных пользователей для реального домена хранимых в БД без задействования fallback_transport (на дистрибутивном postfix) - я не разобрался... :-( -- С уважением. Алексей. --------------020706030509050809050004 Content-Type: application/x-sh; name="mailusradd.sh" Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename="mailusradd.sh" #! /bin/sh DOMAIN="My.Domain" VUSER="virtual_mail" MUSER="mail" DMAIL="/var/spool/mail" ALIASSES="/etc/postfix/aliases" USERDB="/usr/sbin/userdb" #USERDB="echo" GREP="/bin/grep" FGREP="/bin/fgrep" CUT="/bin/cut" CHOWN="/bin/chown" HOSTNAME="/bin/hostname" APG="/usr/bin/apg" ID="/usr/bin/id" USERDBPW="/usr/sbin/userdbpw" MAKEUSERDB="/usr/sbin/makeuserdb" MAILDIRMAKE="/usr/bin/maildirmake" GETOPT="/usr/bin/getopt" TR="/usr/bin/tr" PARAMTEMP=`$GETOPT -o s:p:h -l synonym:,password:,help -n "$0" -- $@` eval set -- "$PARAMTEMP" SNAME="" NAME="" Passwd="" while true do case "$1" in -s|--synonym) MNAME=`echo "$2" | $TR '[:upper:]' '[:lower:]'` echo "$MNAME" | $GREP -q '[^a-z0-9_.-]' && { echo "Error: Аргумент ключа $1 может содержать только [A-Za-z0-9_.-] символы!" exit 1 } shift 2 ;; -p|--password) PASSWD="$2" shift 2 ;; -h|--help) echo "$0 [-s|--synonym ] [-p|--password ] [-h|--help] " exit 0 ;; --) shift break ;; *) echo "Error: Ключ $1 - неизвестен!" exit 1 ;; esac done VUID="`$ID -u \"$VUSER\"`" MGID="`$ID -g \"$MUSER\"`" if test "x$VUID" = "x"; then echo "No set user for virtual domen" exit 2 elif test "x$1" = "x"; then echo "No mail name" exit 3 fi NAME=`echo "$1" | $TR '[:upper:]' '[:lower:]'` echo "$NAME" echo "$NAME" | $GREP -q '[a-z][^a-z0-9_-]' && { echo "No valid mail name" exit 4 } MNAME="${MNAME:-"$NAME"}" #if test "x$NAME" = "x"; then # NAME=`echo "$MNAME" | $TR '.' '_'` #fi MUID=`$ID -u "$NAME" 2>/dev/null||echo "$VUID"` if test "x$MUID" = "x$VUID"; then MAIL="$DMAIL/$VUSER/$NAME" UHOME="$MAIL" else MAIL="$DMAIL/$NAME" UHOME="`$GREP \"^$NAME:\" /etc/passwd|$CUT -f6 -d:`" fi MAILNAME="${NAME}@$DOMAIN" MPASSWORD="${PASSWD:-`$APG -n 1`}" SMPASSWORD="`echo $MPASSWORD|$USERDBPW`" $MAILDIRMAKE "$MAIL" $MAILDIRMAKE -f Sent "$MAIL" $MAILDIRMAKE -f Drafts "$MAIL" $MAILDIRMAKE -f Templates "$MAIL" $CHOWN -R "$MUID":"$MGID" "$MAIL" $USERDB $MAILNAME set home="$UHOME" mail="$MAIL" uid="$MUID" gid="$MGID" \ imappw="$SMPASSWORD" pop3pw="$SMPASSWORD" test "x$NAME" = "x$MNAME" || ($GREP -q "^${NAME}:" "$ALIASSES" || (echo "${MNAME}: $NAME" >> $ALIASSES)) #test "x$NAME" = "x$MNAME" || (echo "${MNAME}: $NAME" ) echo "user:" "${MNAME}@$DOMAIN" "$MAILNAME" "$MPASSWORD" "$MAIL" "$UHOME" --------------020706030509050809050004 Content-Type: application/x-sh; name="mailusrsync.sh" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="mailusrsync.sh" #! /bin/sh SERVICE="/sbin/service" RM="/bin/rm" MAKEUSERDB="/usr/sbin/makeuserdb" NEWALIASES="/usr/bin/newaliases" $MAKEUSERDB $RM -f /etc/courier-imap/userdb.lock $NEWALIASES $SERVICE postfix reload $SERVICE courier-authdaemon restart --------------020706030509050809050004--