# Godot's Poorly Crafted .mailfilter # For use with maildrop # filter matching is done in .filters/name-of-filter # Variables MONTHSTRING=`date +%Y-%m` MAILDIR=$HOME/Mail FILTERS=$HOME/.filters TSTAMP=`date +%T` SPACE="" # Catchall Logging rule /^From:!.*/ { # Extract sender info WHO=$MATCH2 /^Subject:!.*/ { `echo $TSTAMP" :" $MATCH2 $MATCH3 >> /dev/console` `echo $TSTAMP" :" $WHO $MATCH2 $MATCH3 >> ~/Mail/log` log "Message: $MATCH" } } # Snag cron mail # Move it to a seperate mbox if ( /^From: *!.*/ && lookup( $MATCH2, "$FILTERS/cron" )) { to $MAILDIR/crons } # Mailing Lists # I store the email info (bleh@foo.com) # in $MAILDIR/nameoflist. # These rulesets lookup info extracted # from those files to match # Debian if ( /^To: *!.*/ && lookup( $MATCH2, "$FILTERS/debian-lists" )) { to $MAILDIR/lists/debian-${MONTHSTRING} } # Dhis List if ( /^To: *!.*/ && lookup( $MATCH2, "$FILTERS/dhis-lists" )) { to $MAILDIR/lists/dhis-list } # Phil Lists if ( /^To: *!.*/ && lookup( $MATCH2, "$FILTERS/phil-lists" )) { to $MAILDIR/lists/phil-lists-${MONTHSTRING} } # Unix Tips if ( /^From: *!.*/ && lookup( $MATCH2, "$FILTERS/unix-tips" )) { to $MAILDIR/lists/unix-tips } # Freshmeat if ( /^To: *!.*/ && lookup( $MATCH2, "$FILTERS/freshmeat-list" )) { to $MAILDIR/lists/freshmeat-${MONTHSTRING} } # Move 'allowed' mail out before it hits # the spam filters. Stick legit senders # addy in 'allowed'. So folks from freemail # accounts can send me mail. if ( /^From: *!.*/ && lookup( $MATCH2, "$FILTERS/allowed" )) { to $DEFAULT } # Trash mail set for trashing # Warning: successful lookups are # /dev/null'd if ( /^From: *!.*/ && lookup( $MATCH2, "$FILTERS/trash" )) { to $MAILDIR/trash } # Spam stuff # Clean out unwanted stuff. # Matches against any contained # in 'spam' file. Lookups are 'expensive', so # they need to be -after- most of the mail has # been filtered out (lists and whatnot) if ( /^To: *!.*/ && lookup( $MATCH2, "$FILTERS/spam" )) { to $MAILDIR/spam } if ( /^From: *!.*/ && lookup( $MATCH2, "$FILTERS/spam" )) { to $MAILDIR/spam } if ( /^CC: *!.*/ && lookup( $MATCH2, "$FILTERS/spam" )) { to $MAILDIR/spam } # Final sort/backup # This moved mail -not- addressed to me # into the spam folder, and saves a copy # of mail which is addressed to me in a # monthly archive mbox if ( /^To: *!.*/ && lookup( $MATCH2, "$FILTERS/mymail" )) { cc $MAILDIR/archives/mail-${MONTHSTRING} } else { to $MAILDIR/spam } #### Unaffected stuff gets moved to default #### mailbox