Jon Fullmer wrote:
I'm using Postfix, Amavisd-new/SpamAssassin, and Dovecot. They all run on the same server (running Linux). The mailboxes are stored on the same server in maildir format.

The logical path for incoming messages (as I understand it) is:

1) received by Postfix; handed off to Amavisd-new
2) Amavisd-new checks to see whether or not it's spam/undesirable; hands off to Dovecot deliver
3) Dovecot deliver delivers the message to the local mailbox

Under each of my user's mailbox is a submailbox called "spam". Just so I don't confuse terminologies (I'm no IMAP/maildir expert), for example, we have [EMAIL PROTECTED] My configured mail_location is "maildir:/srv/mail/%d/%n", so this person's mailbox is located here: /srv/mail/domain.com/someone/ Within this directory is another mailbox: /srv/mail/domain.com/someone/.spam/

[snip]

Or is there a better way?



you can use something like this (in master.cf):

dovecot unix    -       n       n       -       -      pipe
        flags=DRhu user=_mailbox
        argv=/path/to/dovecot/deliver
                -d [EMAIL PROTECTED] -n -m ${extension}

(-n prevents dovecot from creating the folder if it doesn't exist. otherwise, strangers can create random folders in your mailbox!).

Alternatively, you can use sieve:

require "fileinto";

if header :contains "X-Spam-Flag" "YES" {
         fileinto "Junk";
         stop;
}

#if header :contains "X-Amavis-Alert" "BANNED" {
#        fileinto "Junk";
#        stop;
#}

#if header :contains "X-Spam-Status" "BOUNCE_MESSAGE" {
#        fileinto "Junk.Bounce";
#        stop;
#}



Thanks so much for your help, and thanks for a great product!

 - Jon

Reply via email to