EnderUNIX Team.


EnderUNIX İpucu

Arkadaşıma gönder , Ana Sayfa

[ Postfix ]

"Postfix sunucudan gonderilen maillerin qmail sunucuda ayni hesap isimleri ile yedeklenmesi" - Gökhan ALKAN - (2008-09-08 14:38:19)   [3709]

Bu ipucunda postfix sunucudan gonderilen maillerin qmail sunucuda ayni hesap isimleri ile nasil yedeklenebilecegi anlatilmistir. Postfix sunucuda kullanicilarin "/etc/passwd" dosyasinda tutuldugu ve qmail sunucuda vpopmail + procmail kullanilmistir. Postfix sunucuda domain1, qmail sunucuda ise domain2 adindan domainlerin oldugu varsayilmistir.

Oncelikle her 2 sunucuda da ayni kullanici isimlerinin olmasi gerekmektedir. Yani galkan@domain2.com email adresi postfix sunucuda var ise, galkan@domain2.com email adreside qmail sunucuda olmalidir. Bunun icin oncelikle Postfix sunucuda bulunan kullanici isimleri belirlenmeli ve bu dosya diger sunucuya aktarilarak ayni k.adlarina sahip "@domain2" kullanicilari diger sunucuda olusturulmalidir.

Postfix sunucuda:
==================
# cat /etc/passwd | cut -d ':' -f1 >> passwd
# scp passwd user@domain2_ipadresi:/path_to_user

Qmail sunucuda:
==================
# cat passwd | while read user
do
/usr/local/vpopmail/bin/vuserinfo $user@domain2.com >/dev/null 2>&1

if [ $? -ne 0 ]
then
/usr/local/vpopmail/bin/vadduser $user@domain2.com
fi
done
#

Postfix sunucudan gonderilen maillerin qmail sunucuya iletimi icin http://ipucu.enderunix.org/view.php?id=1974&lang=tr ipucunda bahsedilen "sender_bcc_maps = hash:/etc/postfix/sender_bcc_table" paremetresi "main.cf" icerisine eklenir ve ardindan asagidaki betik calistirilarak her kullanicidan gonderilen maillerin @domain2'de bulunan hesaplara gitmesi saglanmis olur.

Postfix Sunucuda:
==================
# cat /etc/passwd | cut -d ':' -f1 | while read user
do

if [ ! `cat /etc/postfix/sender_bcc_table | grep -E "^$login@domain1.com"` ]
then
echo "$login@domain1.com $login@domain2.com" >> /etc/postfix/sender_bcc_table
fi

done
#


domain1'de bulunan kullanicilarin domain2'de ayni hesaplarlar acilmasinin ardindan ornek .qmail-user ve .procmail.user istenilen bir dizinde asagidaki sekilde ve isimde olusturulur.

# cd /tmp

# cat .qmail-XXXXXX
| /usr/bin/procmail -pm /usr/local/vpopmail/domains/domain2/.procmailrc.XXXXXX
#

# cat .procmailrc.XXXXXX
SHELL="/bin/bash"
VHOME=`/usr/local/vpopmail/bin/vuserinfo -d $EXT@domain2.com`

:0
* ^From.*\
$VHOME/Maildir/.Gonderilen_Mailler/

#Spam mesajlar -> /dev/null
:0:
* ^X-Spam-Status: YES
/dev/null

:0:
*
$VHOME/Maildir/
:0w
| /usr/local/vpopmail/bin/vdelivermail " bounce-no-mailbox
#

Son olarak her kullanici icin gerekli .qmail-user ve .procmail.user dosyalarini olusturmak icin

Qmail sunucuda:
===============
# cat passwd | while read user
do

/usr/local/vpopmail/bin/vuserinfo $user@domain2.com >/dev/null 2>&1

if [ $? -eq 0 ]
then
DIR=`/usr/local/vpopmail/bin/vuserinfo $user@domain2.com | grep -E "^dir:" | awk '{print $2}'`

if [ ! -d "$DIR/Maildir/.Gonderilen_Mailler" ]
then
maildirmake $DIR/Maildir/.Gonderilen_Mailler
chown -R vpopmail:vchkpw $DIR/Maildir/.Gonderilen_Mailler
echo ".Gonderilen_Mailler" >> $DIR/Maildir/subscriptions
chown vpopmail:vchkpw $DIR/Maildir/subscriptions
chmod 600 $DIR/Maildir/subscriptions
fi
fi

sed s/XXXXXX/$user/ /tmp/.qmail-XXXXXX > /usr/local/vpopmail/domains/domain2.com/.qmail-$user
chown vpopmail:vchkpw /usr/local/vpopmail/domains/domain2.com/.qmail-$user
chmod 600 /usr/local/vpopmail/domains/domain2.com/.qmail-$user

sed s/XXXXXX/$user/ /tmp/.procmailrc.XXXXXX > /usr/local/vpopmail/domains/domain2.com/.procmailrc.$user
chown vpopmail:vchkpw /usr/local/vpopmail/domains/domain2.com/.procmailrc.$user
chmod 644 /usr/local/vpopmail/domains/domain2.com/.procmailrc.$user

done
#

Ve son olarak postfix sunucuda asagidaki komut calistirilir.

# postmap /etc/postfix/sender_bcc_table


Arkadaşıma gönder , Ana Sayfa