#*** Special comments for SfinxUpdate:
#SfinxFileName: procmailrc-spamassassin
#UserFileName: .procmailrc
# %SFINX_RELATED% forward
# %SFINX_NEEDS_EDIT% Default settings is to put spam in a folder named "junk". If you want procmail/spamassassin to put spam in another folder, edit .procmailrc
.
#*** End of special comments for SfinxUpdate
#
# SET VARIABLES
##############################################################################
# Internal Variables
SHELL=/bin/sh #Shell used to run procmail. Be sure this points to
#your system's copy of sh. DO NOT substitute a
#different shell unless you really know UNIX
LINEBUF=4096 #Needed to keep Procmail from choking on long
#"recipes", or instructions on what to do with
#particular kinds of email.
PATH=/usr/bin:/bin:/software/local/bin
#Path for your programs -- this is probably best
#left alone.
VERBOSE=off #Change this to "on" when you try a new recipe
#so that Procmail will log literally every step
#it takes. DO NOT LEAVE IT ON, though, because
#it creates huge logfiles.
##############################################################################
# Default Program & file locations
FORMAIL=/usr/bin/formail # useful for autoreply recipes.
SENDMAIL=/usr/sbin/sendmail # useful for autoreply recipes.
MAILDIR=${HOME}/Maildir/. # You'd better make sure this directory exists!
DEFAULT=/var/spool/mail/${LOGNAME}/ #default incoming mailbox = Maildir !
# Folder to save spam to:
JUNKFOLDER=${MAILDIR}junk/
# There is no automatic deletion in procmail, but you can use the next best
# thing: save to /dev/null
#JUNKFOLDER=/dev/null
# JUNKFOLDER=${DEFAULT} takes care of the case when you want mail in your
# default mailbox (eg to filter in thunderbird)
#JUNKFOLDER=${DEFAULT}
##############################################################################
#Spamassassin begin
# All mail is already filtered by MailScanner and SpamAssassin
# but in case you want a customized SpamAssassin, run it again here:
# beware that this puts quite some load on the mailserver, so consult
# with system management before enabling this option
#:0fw: spamassassin.lock
#| /usr/bin/spamc
## Mail tagged as spam by SpamAssassin
:0:
* ^X-Spam-Flag: YES
:0:
* ^Subject: \{Spam\?\}
$JUNKFOLDER
# Comment the preceeding lines if you wish procmail to leave all mail
# in the mailbox (if you use a pop or imap client)
# On the other hand: in that case you can bypass this .procmailrc completely.
#############################################################################
# e-mail forwarding:
# Many mailservers are sending out error messages or notices if mail is
# recognized as spam. I don't know if that makes any sense, and our server
# does not do that. But anyway, if you have your e-mail forwarded to a place
# that does this, the reply ends up with us (postmaster@strw) and not with the
# spammer. So be nice to your friendly sysadmins, and don't put a unconditional
# forwarding in .forward, but in stead, use procmail to filter out the spam,
# and only forward the mail if it passes the test. So if you want to forward
# your mail, use one of the following recipes (and make sure they stay at the
# END of this file!).
# If you want a copy of your mail forwarded to another address, use this:
#:0 c
# ! your_address@remoteserver.edu
# If you want your mail forwarded to another address, without a local copy
# (especially useful if you no longer work here) use this:
#:0
# ! your_address@remoteserver.edu
#############################################################################
# Similar to the note about mail forwarding (see above), use of the 'vacation'
# program is not always a good idea. It causes spam bounces to the local
# postmaster (who probably has better things to do than reading spam addressed
# to you) and in the worst case, it confirms the validity of your e-mail
# address to the spammer, which makes your address so much more valuable to
# him. So if you don't want to be burried in spam when you come back from
# your trip, don't use 'vacation', but use this vacation-like setup
# (from procmailex man page, modified for local settings)
#
# Additional note: as of Fedora Core 1(?), the vacation program is no longer
# distributed with the mail server setup, probably because of these same
# reasons. All the more reason to use an alternative like this.
# New, the E.R. Deul way. SMS "vacation on" to 8444 or something like that :
VAC_MESSAGE=$HOME/.vacation.msg
VAC_CACHE=$HOME/.vacation.cache
VAC_LOCK=$HOME/.vacation.lock
NL="
"
# test if message is to and from the same address and if suject is
# "vacation on" or "vacation off"
:0
# adressed to a system user
*$ ^TO_$LOGNAME@
# and is from that same user
*$ ^From:.*$LOGNAME@
# has subject containing only "vacation (on|off)"
* ^Subject: *vacation *\/o(ff|n) *$
# clean out extra space
* MATCH ?? ()\/o(ff|n)
{
ACTION=$MATCH
#LOG="ACTION: $ACTION, USER: $LOGNAME, HOME: $HOME $NL"
:0c
* ACTION ?? off
# remove vacation message and cache
| rm $VAC_MESSAGE $VAC_CACHE
:0Ebc
# create vacation message from body
| cat > $VAC_MESSAGE
# FIXME: extra newline in output; how to deal with attachements?
# As confirmation that vacation works the user will receive his own
# auto-reply from the next recipe
}
:0
# is there a vacation message for that user?
*$? "test -e $VAC_MESSAGE"
{
# from procmailex
:0 Whc: $VAC_LOCK
# Perform a quick check to see if the mail was addressed (to|cc) us
*$ ^TO_$\LOGNAME@
# Don't reply to daemons and mailinglists
* !^FROM_DAEMON
# Mail loops are evil
*$ !^X-Loop: $LOGNAME@$HOST
| formail -rD 8192 $VAC_CACHE
# if the name was not in the cache
:0 ehc
| (formail -rI"Precedence: junk" -A"X-Loop: $LOGNAME@$HOST" ; \
cat $VAC_MESSAGE ) | $SENDMAIL -oi -t
}
# "vacation" end
##############################################################################
##############################################################################
# if you want your new mail to be delivered to a folder in your home, e.g.
# to make it easier to read the mail with mutt or pine, activate this, and
# configure your mail client to use the file you specify here as your inbox
# mutt: .muttrc: set spoolfile=~/mail/incoming
# pine: .pinerc: inboxpath=~/mail/incoming
# elm: setenv MAIL ~/mail/incoming (in .cshrc or .settings)
#:0:
#incoming
# .procmailrc end
##############################################################################