XMail to CDB-database for use with qpsmtpd
1 oktober 2007
This scripts creates a Constant DataBase file. We use this to interact with the qpsmtpd plugin check_validrcptto_cdb
.
-
-
#!/bin/bash
-
-
#this script creates a cdb file from xmail users and their aliases
-
-
OUTPUTFILE=/var/lib/qpsmtpd/rcptto/validrcptto.cdb
-
XMAILROOT=/etc/xmail
-
-
#no more settings beyond this point
-
-
TMPFILE=$(mktemp /tmp/email2cdb.XXXXXXXXXX)
-
-
[ -d "$(dirname $OUTPUTFILE)" ] || {
-
echo "directory for OUTPUTFILE $OUTPUTFILE does not exists"
-
exit 3
-
}
-
-
[ -f "$TMPFILE" ] && rm $TMPFILE
-
touch $TMPFILE || {
-
echo "can not create $TMPFILE"
-
exit 9
-
}
-
-
#paranoia strikes again:
-
#chmod og-r $TMPFILE
-
-
#list all email boxes:
-
cat $XMAILROOT/mailusers.tab \
-
| sed ‘s/"//g’ \
-
| awk ‘{print $2 "@" $1 "\t" $2 "@" $1}’ \
-
| sed ‘s/^*//’ \
-
| sed ‘s/*//’ >> $TMPFILE
-
-
#list aliases
-
cat $XMAILROOT/aliases.tab \
-
| sed ‘s/"//g’ \
-
| awk ‘{print $2 "@" $1 "\t" $3 "@" $1}’ \
-
| sed ‘s/^*//’ \
-
| sed ‘s/*//’ >> $TMPFILE
-
-
#create cdb file
-
cdb -cm $CDBOPTIONS $OUTPUTFILE $TMPFILE || {
-
echo "can not create cdb file $OUTPUTFILE FROM $TMPFILE"
-
echo "WARNING: I did not remove $TMPFILE for debug purposes"
-
exit 9
-
}
-
-
#cleanup:
-
rm $TMPFILE
-
exit 0
Categorieën:Linux Tips & Trics