Re: konversi domain dan password
Asfihani <asfik-yNEVPA1OLJZWk0Htik3J/[email protected]> Mon, 14 Jun 2004 12:05:20 +0700
| Newsgroups | gmane.mail.postfix.user.indonesian |
|---|---|
| Organization | PT. Cakraperdana Proniagatama. |
| Message-ID | <20040614050520.GH1698@nirwana> |
On Sat, May 29, 2004 at 10:52:31AM +0700, Rizki Anto wrote: > nah masalahnya sekarang bagaimana cara untuk memindahkan domain + > user + password dari mailserver saya yang lama (menggunakan > qmail+vpopmail) ke postfix+courier-imap+mysql, berhubung domain yang > ada di mailserver lama ini buanyak banget...a Script bash yang saya attach ini mungkin bisa digunakan. Note, tidak 100% sempurna, tapi bisa dicoba. Lihat pada pengecekan forward, discript ini tidak bisa lebih dari satu destination forwar. Script ini saat ini hanya bisa digunakan pada vanilla vpopmail (tanpa RDBMS misalnya MySQL) dan mengacu pada struktur ditutorial http://www.high5.net/howto. Seperti biasa, resiko ditanggung penumpang. Asfihani
dumpvpopmail.sh
(application/x-sh, 2 KB)
#!/bin/bash # Bash script untuk mengekspor data mailbox di vpopmail ke format # SQL untuk Postfix + MySQL # # Author: Asfihani <[email protected]> # Direktori Vpopmail VPOPMAILHOME=/home/vpopmail # Output file OUTFILE=/home/asfik/mailbox.sql cd $VPOPMAILHOME/domains echo "" > $OUTFILE echo "USE postfix;" >> $OUTFILE echo "" >> $OUTFILE for domain in $(ls -1) do DOMAIN=$domain echo "# Domain $DOMAIN" >> $OUTFILE echo "INSERT INTO domain (domain,description) VALUES ('$DOMAIN','Domain $DOMAIN');" >> $OUTFILE echo "" >> $OUTFILE echo "# Mailboxes for domain $DOMAIN" >> $OUTFILE for mailbox in $(cat $DOMAIN/vpasswd) do # username format [email protected] USERNAME=$(echo $mailbox | awk -F: '{print $1}')@$DOMAIN # password format ? PASSWORD=$(echo $mailbox | awk -F: '{print $2}') # generic name format/identity NAME=$(echo $mailbox | awk -F: '{print $5}') # maildir format VIRTUAL_MAILBOX_BASE/domain.tld/username/Maildir/ MAILDIR="$DOMAIN/$(echo $mailbox | awk -F: '{print $1}')/Maildir/" echo "INSERT INTO mailbox (username,password,name,maildir) VALUES ('$USERNAME','$PASSWORD','$NAME','$MAILDIR');" >> $OUTFILE done echo "" >> $OUTFILE # Check if there's alias/forward for specific account TEST=$(ls -1 $DOMAIN/.qmail-* | grep -v ".qmail-default" | wc -l) if [ "$TEST" -gt 0 ]; then for alias in $(ls -1 $DOMAIN/.qmail-* | grep -v ".qmail-default") do # Skip if file is symlink, maybe a mailing-list if test -h $alias ; then echo "Warning, file $alias probably mailing-list. Skipping..." else # address format [email protected] ADDRESS=$(echo $alias | sed -e "s{$DOMAIN/.qmail-{{g")@$DOMAIN # real mailbox format [email protected] GOTO=$(cat $alias | sed -e "s{$VPOPMAILHOME/domains/$DOMAIN/{{g" | sed -e "s{/Maildir/{{g")@$DOMAIN echo "# Alias for domain $DOMAIN" >> $OUTFILE echo "INSERT INTO alias (address,goto) VALUES ('$ADDRESS', '$GOTO');" >> $OUTFILE fi done echo "" >> $OUTFILE fi done