On Fri, Mar 12, 2004 at 11:24:50AM -0300, Yves Junqueira wrote: > Hi. > > I am trying to set up a custom behaviour for a spam blocking mail server, > where the mail get redirected to a custom Spam folder in the user's > Maildir folder. > > Everything is working fine, except that, when procmail delivers the > message, the ownership is wrongly set to "root":
How is procmail invoked? What versions of what software is involved? I use postfix 2.0.16, and /etc/postfix/main.cf contains this line: mailbox_command = procmail -a "$EXTENSION" Then procmail will run as the recipient. I don't use global /etc/procmailrc , but .procmailrc in homedir instead. > > # cat /etc/procmailrc > PATH=/bin:/usr/bin > LOGFILE=$HOME/procmaillog > DEFAULT=$HOME/Maildir/ > > :0fw: spamassassin.lock > * < 256000 > | spamc -f -u $LOGNAME What version of spamassasin are you running? I use 2.63, and have ommittef the -u flag, spamc runs as the same user as parent (procmail) > > :0: > * ^X-Spam-Status: Yes > $DEFAULT/.Spam/ > > EOF > > # ls -la ~user/Maildir/.Spam/new/ > > drwx------ 2 user user 4096 Mar 12 09:56 . > drwx------ 5 user user 4096 Mar 12 09:56 .. > -rw------- 1 root mail 4460 Mar 12 09:37 > 1079095066.4158_2.ares > -rw------- 1 root mail 8619 Mar 12 09:56 > 1079096151.4216_2.ares > > I suppose this ownership setting is ok for a mbox store, not for a Maildir > format, since the user isnt able to read or modify that message. > > So, how can I make procmail deliver that message correctly? I could make > a script to do that, instead of using the redirection to .Spam/, but is > there a nicer way to do that? > > I also had problems making an alternative maildrop sollution. The issue is > that maildrop's xfilter command wont work if the recipient user doesnt > have a valid shell: > > # cat /etc/maildroprc > DEFAULT="$HOME/Maildir" > # exception commented so I could see the error log > #exception { > xfilter "/usr/bin/spamc -f -u $RECIPIENT" > #} > if (/^X-Spam-Flag: YES/) > { > to "Maildir/.Spam" > } > > EOF > > It would work fine, except that when the recipient user does not have a > valid shell account, it exists with the following error (when I am not > using the 'exception' block): > > BAF555886: to=<[EMAIL PROTECTED]>, relay=local, delay=0, status=deferred > (temporary failure. Command output: maildrop: error writing to filter. > /usr/bin/maildrop: Unable to filter message. ) > > > I suppose xfilter calls the user's shell. Is there any other way to filter > messages without this requirement? > > Is using an 'smtp' content filter in the MTA (postfix) a better option? > The sollutions I've seen use 'spamassassin' instead of 'spamc', that is > the method I prefer... > > Thanks in advance, > > Yves > -- Frode Haugsgjerd Norway