################################################# # procmailrc # This is the main procmail file with common SPAM recipes # Based on the article at # http://www.ncworldmag.com/ncw-05-1998/ncw-05-imap.html # # # First we define some basics PATH=/usr/bin:/bin SHELL=/bin/sh # We define DELIVERTO just to prevent a lot of extra # typing later on. We define SPAMIT to prevent even more # repetitive typing, as it's the same action for every user. # This assumes we set up a SPAM folder right off the INBOX # for every user on the system. If we neglect to do that, we'll # get in a bit of trouble. DELIVERTO=/usr/cyrus/bin/deliver-wrapper SPAMIT="$DELIVERTO user.$LOGNAME.SPAM" # This file includes the appropriate procmail.$LOGNAME # file so that each user has his or her own recipe techniques # for subscribed lists, e-mail alerts, etc. # Before we begin any recipes, let's make a backup # copy of any incoming mail. # # Remember to comment out the next recipe once # you know everything is working fine, otherwise # you'll fill up the backup directory very quickly. # Some procmail tutorials demonstrate how you can # set a quota on the backup directory so that you can # leave it in force at all times. :0 ic | $DELIVERTO user.$LOGNAME.Backup ############################### # If there used to be an existing system-wide procmailrc, you can # include it here #INCLUDERC=/etc/procmailrc # We shouldn't be running as a privileged user, but just in case, # make sure we drop any privileges we have DROPPRIVS=1 ############################### # If users want to be able to define their own private recipes # and put them in their home .procmailrc files, comment out # the next definition. # # These recipes will be processed BEFORE the user-specific # recipes that are kept in the /home/cyrus directory # # setup some variables, before we start ALERTSBOX=user.$LOGNAME.Folders.Alerts LISTSBOX=user.$LOGNAME.Folders.Lists # INCLUDERC=$HOME/.procmailrc # If you want to define user-specific recipes that # you manage centrally (perhaps because you don't want # to allow your users to "roll their own," then # uncomment the following line. In this case, you have # to create a file for each user in the form: # procmail.username -- for example, procmail.Joe # # INCLUDERC=/usr/cyrus/etc/procmail.$LOGNAME ############################# # Now we begin our recipes ############################# # Email-specific SPAM recipes # Here's one example #### NOTE: surely cyrus 'deliver' does its own locking? There should #### thus be no need for :0:$LOGNAME.lock :0 * ^To:.*anyplace@juno.com | $SPAMIT ############################# # General SPAM Recipes # Here are a few examples # # The "To:" line doesn't exist #:0 #* !^To: #| $SPAMIT # The "To:" line is empty #:0 #* ^To: $ #| $SPAMIT # The "From:" line is empty #:0 #* ^From: $ #| $SPAMIT ############################# # All the mail that falls # through the above recipes # will be put into the user's # inbox. This is always the LAST # recipe to appear in the file. :0W | $DELIVERTO user.$LOGNAME # If that fails - maybe because the user is out of quota, or the mailbox # hasn't been created - then force a bounce (otherwise the message would # get silently appended to /var/spool/mail/$LOGNAME). # This is EX_CANTCREAT (Can't create output) EXITCODE=73 :0 /dev/null # # End of procmailrc file ##############################