# --- Misc values # These folders are considered bulk folders, messages are moved into these # folders instantly, regardless of seen flag. # Also, those flagged as spam are deleted, not refiled. my @folderBulk = qw(ham spam Trash); # These folders are semi-bulk, files are moved once read but before # $ageBeforeMove my @folderQuickmove = qw(payment hosting); # This is the time in days after which a read non-bulk bound message is moved my $ageBeforeMove = 2; # Time in days before bulk messages deleted my $ageBeforeDrop = 10; # If set to true at any point, message will definitely not be treated as spam my $notspam = 0; # --- Subject based filtering # These subject lines suggest spam my @subjectDrop = ( 'SEXUALLY-EXPLICIT', ); my %subjectMove = ( spam => ['*****SPAM*****', '{Spam?}', '{Spam!}'], ); # --- Account (envelope-to before @) based filtering # Anything set to these is toast my @accDrop = qw(); # Filter into folder depending on account sent to my %accMove = ( openbsd => [qw(openbsd)], ); # --- Full from address based filtering # Anything set to these is toast my @fromAddrDrop = qw(); # filter in folder depending on from address my %fromAddrMove = ( family => [qw()], friends => [qw()], ); # --- From host based filtering # Anything set to these is toast my @fromHostDrop = qw(); # filter in folder depending on from host my %fromHostMove = ( hosting => [qw(.digitalspace.net .joker.com)], ); # --- Sender name based filtering my @fromNameDrop = qw(); my %fromNameMove = ( family => [], friends => [], ); # --- Setup # Calculate age of message my %date = %{$mes->{date}}; my $ageMinute = (time - $date{internal}{epoch}) / 60; my $ageHour = $ageMinute / 60; my $ageDay = $ageHour / 24; # get env-to account my $acc; { my ($envTo) = (keys %{$mes->{address}{'envelope-to'}})[0]; ($acc) = ($envTo =~ /^(.*)\@/g) if (defined $envTo); } # store subject and from name and address my $subject = $mes->{subject}; my ($fromHost, $fromAcc, $fromAddr); if (exists $mes->{address}{from}) { $fromAddr = (keys %{$mes->{address}{from}})[0]; ($fromAcc, $fromHost) = ($fromAddr =~ /^(.*?)\@(.*)$/g); } my $fromName; if (exists $mes->{name}{from}) { $fromName = (keys %{$mes->{name}{from}})[0]; } $fromAddr = "" unless (defined $fromAddr); $fromAcc = "" unless (defined $fromAcc); $fromHost = "" unless (defined $fromHost); $fromName = "" unless (defined $fromName); 1;