[Sysadmins] fetchmail+multidrop или см. аттачи
Michael Shigorin
=?iso-8859-1?q?mike_=CE=C1_osdn=2Eorg=2Eua?=
Чт Ноя 30 20:50:21 MSK 2006
On Thu, Nov 30, 2006 at 07:19:45PM +0200, Alexander Yereschenko wrote:
> Попробовал вытягивать fethmail и скармливать постфиксу... Но
> что-то он все скидывает пользователю, от которого запускался
> fetchmail (напр. admin).
Лучше для такого применять совсем непривилегированного
пользователя, у которого шелл -- максимум /bin/rbash.
> ( В письмах присутствуют поля To: user1 на mydomen.gov.ua )
> Содержимое .fetchmailrc :
> poll domen.gov.ua protocol pop3 username "org" password "pass"
> Пробовал вариант:
> poll domen.gov.ua protocol pop3 username "org" password "pass" to * here
> Не помогло - скидывается локальному юзеру org
> Чтение man fetchmail и пробование вариантов должного результата не дает...
> Видимо не там или не так читаю... :)
Насколько помню, Вам от fetchmail нужен multidrop, хотя последний
раз, как с таким сталкивался -- был нарисован позорный
.procmailrc на десяток пользователей, которые были (точнее,
два скрипта для заведения и удаления почтовых пользователей,
которые делали нужные изменения и в нём).
Ух ты, даже нашлись в загашнике :)
> Как все-таки это сделать правильно? Как раскидать по локальным
> ящикам в зависимости от содержимого поля "To: "
> Кстати, при этом игнорировать в этом поле адреса не из своего
> домена, дабы не плодить дупы.
А они тоже валятся? Тогда модифицируйте болвань .procmailrc
из этих скриптов или /etc/procmailrc (или конфигурацию postfix
в р-не access или header_checks), чтобы их дискардить.
> ЗЫ. Конечно, правильнее всего - это vpn внутри всей организации
> и нормальное хождение почты между почтовыми серверами... Но
> пока увы по различным причинам нереализуемо.
Бывает. Если что -- пишите, звоните (234-7560), поможем.
--
---- WBR, Michael Shigorin <mike на altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
----------- следующая часть -----------
#!/bin/bash
USER="$1"
DOMAIN=XXXXXXX.kiev.ua
GROUP=popusers
DIR=/dev/null
SHELL=/dev/null
PREFIX=/usr/local
POP3LIST=$PREFIX/lib/users.pop3
POP3USER=pop3
POP3DIR=/home/$POP3USER
PROCMAILRC=$POP3DIR/.procmailrc
[ $# = 0 ] && {
echo "Usage: $0 pop3-login-name" >&2
exit 1
}
[ ! -d $POP3DIR ] && {
echo -n "Creating '$POP3USER' account... "
useradd -m -k /dev/null -s /dev/null $POP3USER && echo "done."
touch $POP3DIR/.fetchmailrc
}
grep -q "^$USER$" $POP3LIST && {
echo "User '$USER' already exists in $POP3LIST." >&2
exit 2
}
grep -q "^$GROUP" /etc/group || addgroup -g $GROUP
. $PREFIX/lib/procmailrc.sh
echo "$USER" >> $POP3LIST
useradd -d $DIR -M -s $SHELL -g GROUP $USER
rebuild_promailrc ()
----------- следующая часть -----------
#!/bin/bash2
USER="$1"
PREFIX=/usr/local
POP3LIST=$PREFIX/lib/users.pop3
TMP=`mktemp $PREFIX/tmpXXXXXX.pop3`
POP3USER=pop3
POP3DIR=/home/$POP3USER
PROCMAILRC=$POP3DIR/.procmailrc
[ $# = 0 ] && exit 1
. $PREFIX/lib/procmailrc.sh
userdel $USER && grep -v "^$USER$" $POP3LIST > $TMP || exit 2
cat $TMP > $POP3LIST && rm -f $TMP
rebuild_promailrc ()
----------- следующая часть -----------
#/bin/bash2
rebuild_procmailrc () {
[ -z "$PROCMAILRC" ] && exit 3
cat $1 | while read i; do
echo ":0: # POP3 user \'$USER\'" >> $PROCMAILRC.main
echo "* ^TO.*$USER@$DOMAIN" >> $PROCMAILRC.main
echo "! $USER" >> $PROCMAILRC.main
echo >> $PROCMAILRC.main
done
cat $PROCMAILRC.{head,main,tail} > $PROCMAILRC
rm -f $PROCMAILRC.main
}
Подробная информация о списке рассылки Sysadmins