#! /usr/bin/env python import os, string execfile('gvadm.preferences') # if [ -n $USERPREFIX ]; then # USERPREFIX="usr" # fi # # if [ $1 == "" ]; then # echo "give p as parameter" # exit # fi # # NEWUSER="$USERPREFIX$1" # NEWHOME="/home/mail/$NEWUSER" # NEWPASS=$(apg -n 1 -a 1 -CL -m 8 -x 12) # echo $NEWHOME # # adduser --home "$NEWHOME" --shell /bin/true --no-create-home # --firstuid 20000 --ingroup poponly --disabled-password # --disabled-login --gecos "Popuser $NEWUSER" $NEWUSER # # mkdir -p "$NEWHOME" # chown -Rc $NEWUSER.poponly "$NEWHOME" # echo "${NEWUSER}:${NEWPASS}" | chpasswd # # echo "Herzlich willkommen auf dem GNU-Viech" |\ # mail -s "Willkommen auf dem GNU-Viech" ${NEWUSER} # # echo added new pop3 user $NEWUSER with password $NEWPASS def createpopaccount(domainname, sysuser): """Creates a pop3/imap account for given domain and system user""" "addpopuser sysusrp" def readaliasfile(domainname): """reads the aliasfile for the given domain and returns a dictionary object with the aliases """ aliases={} if (os.access(VIRTUALDOMDIR, os.R_OK)): try: aliasfile=open(VIRTUALDOMDIR+domainname, 'r') for line in aliasfile.readlines(): keyvals = string.split(line,":",1) aliases[keyvals[0]]=keyvals[1].strip() aliasfile.close() except IOError: print "couldn't read the aliasfile for "+domainname+"." else: print "couldn't read from "+VIRTUALDOMDIR+"." return aliases def writealiasfile(domainname, aliases): """writes the aliasfile for the given domain with the aliases defined in the dictionary object aliases """ if (os.access(VIRTUALDOMDIR, os.W_OK)): try: aliasfile=open(VIRTUALDOMDIR+domainname, 'w') for key in aliases.keys(): aliasfile.write(key+":"+aliases[key]+"\n") aliasfile.close() except IOError: print "writing to aliasfile failed." else: print "no write access to directory "+VIRTUALDOMDIR+"." def setmailalias(domainname, alias, target): """sets a mail alias for given domain which directs the MTA to the given target """ aliases=readaliasfile(domainname) aliases[alias]=target writealiasfile(domainname, aliases) createpopaccount("test.de", "usr03") setmailalias("test.de", "doedel", "horst@dittberner.info")