Fábio M. Catunda wrote: > Charles Marcus escreveu: >> On 9/26/2007, Bill Landry ([EMAIL PROTECTED]) wrote: >>>> But with maildrop you still run the process of creating/checking on >>>> every delivery, same thing as dovecot, right? >> >>> Correct. If the folder does not exist, maildrop will create it on >>> first delivery. If the end user deletes the folder, maildrop will >>> recreate the folder on the next message delivery to that account. >> >> Could it could be written to simply create the folder if the target >> folder doesn't exist (ie, if the initial save fails due to >> non-existent folder)? Then there would be no performance hit... >> > There will be a performance hit couse you have to check if the folder > exists or not. > With maildrop its pretty easy to do that, but you will have an extra > access to your HD on every message delivery. > Maildrop can run shell commands it the user that runs it have a valid > shell (Debian-exim do NOT have a valid shell, I created another user > just to make the delivery), so, you can run something like > > /^Envelope-to:.*/ > getaddr($MATCH) =~ /^.*/; > DEST = $MATCH > USER = `/bin/echo $DEST | /usr/bin/cut -f1 -d'@'` > DOMAIN = `/bin/echo $DEST | /usr/bin/cut -f2 -d'@'` > > DOEXIST=`[ -d /var/mail/$DOMAIN/$USER/Maildir ]; echo $?` > > if ($DOEXIST == 1){ > <RUN SOMETHING HERE TO CREATE MAILDIRS> > }
I simply use this in the maildroprc: # Auto-Create new mailbox if (/^Received:/) { `test -d $DEFAULT` if ($RETURNCODE == 1) { `/usr/local/bin/maildirmake $DEFAULT` `/usr/local/bin/maildirmake -f Spam $DEFAULT` `echo "Spam" >> $DEFAULT/subscriptions` } } # Deliver to Inbox or Spam box (create spam box if it does not exist) if (/^X-Spam-Flag: YES/:h) { `test -d $DEFAULT/.Spam` if ($RETURNCODE == 1) { `/usr/local/bin/maildirmake -f Spam $DEFAULT` `echo "Spam" >> $DEFAULT/subscriptions` } exception { to "$DEFAULT/.Spam" } # if all else fails, do regular delivery exception { to "$DEFAULT" } } else { exception { to "$DEFAULT" } } Maildrop automatically creates the maildir for new accounts if a valid e-mail address is found and the account has not already been created when the first message arrives for the new user. It also tests that the spam folder exists whenever a message is received that contains the spam x-header, so that the folder can be created prior to the spam message delivery (this test is very fast and does not seem to hinder performance since maildrop written in C++ and is highly optimized to support these kinds of functions). Bill