welcome: please sign in

Diff for "MemberManual/Email/Procmail"

Differences between revisions 3 and 5 (spanning 2 versions)
Revision 3 as of 2007-04-15 13:16:59
Size: 5359
Comment:
Revision 5 as of 2007-05-08 02:23:22
Size: 5347
Editor: MichaelOlson
Comment: Update paths for deleuze
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
This page has a sample {{{.procmailrc}}} file with comments. You
should use either a {{{.procmailrc}}} file or a {{{.forward}}} file,
This page has a sample {{{.procmail.d/procmailrc}}} file with comments. You
should use either a {{{.procmail.d/procmailrc}}} file or a {{{.forward}}} file,
Line 12: Line 12:
criteria using the power of regexps, perhaps a {{{.procmail}}} file criteria using the power of regexps, perhaps a {{{.procmail.d/procmailrc}}} file
Line 35: Line 35:
MAILDIR=$HOME/Maildir #
# Change these to match your username!
HOME=/afs/hcoop.net/user/m/mw/mwolson
MAILDIR=/afs/hcoop.net/common/email/m/mw/mwolson
Line 46: Line 49:
:0:
* ^From.*(olsonh@bethelcollege|rogero@saintjoe|risnerolson1@msn)
:0
* ^From.*(familymember1@msn|familymember2@yahoo)
Line 51: Line 54:
:0:
* ^From.*(rodgerh|yodera)@bethelcollege
:0
* ^From.*person@somecollege
Line 62: Line 65:
:0: :0
Line 67: Line 70:
:0: :0
Line 74: Line 77:
:0:
* ^From:.*mwolson@member\.fsf\.org
:0
* ^From:.*me@hcoop\.net
Line 80: Line 83:
:0:
* ^(To:|From).*tuxtanker\.mwolson\.org
:0
* ^(To:|From).*local\.domain\.org
Line 85: Line 88:
:0:
* ^To:.*me(\+|_)vending@mwolson\.org
:0
* ^To:.*me(\+|_)vending@domain\.org
Line 89: Line 92:
# GNU related email
:0:
* ^To:.*(me\+gnu@mwolson\.org|mwolson@gnu\.org)
.Gnu/
Line 95: Line 93:
:0:
* ^To:.*me\+purdue@mwolson\.org
:0
* ^To:.*me\+school@domain\.org
Line 99: Line 97:
# Crap sent to all Bethel students
:0:
# Crap sent to all students
:0
Line 105: Line 103:
:0: :0
Line 110: Line 108:
:0: :0
Line 115: Line 113:
:0: :0
Line 120: Line 118:
:0: :0
Line 125: Line 123:
:0: :0
Line 130: Line 128:
:0: :0
Line 135: Line 133:
:0: :0
Line 168: Line 166:
:0: :0
Line 173: Line 171:
:0: :0
Line 178: Line 176:
:0: :0

This page has a sample .procmail.d/procmailrc file with comments. You should use either a .procmail.d/procmailrc file or a .forward file, but not both.

Which should I use?

If you simply want to send mail to another email address, using a .forward file is your best bet.

If you want to exercise control over your email by splitting it into various mailboxes or (in our case) IMAP folders based on custom criteria using the power of regexps, perhaps a .procmail.d/procmailrc file would be best for you.

What does this file do?

  • Separates mail into different folders based on who it is from or who it is addressed to.
  • If an email message did not get checked by the central spamassassin daemon, make sure it gets checked. It calls the client program instead of starting another spamassassin process. Most messages have already been checked -- these we don't touch. Occasionally spamassassin misses checking a message or two, somehow.

What does this file not do?

  • Force spam checking with a custom set of rules. The admins do not recommend checking spam with custom rules, since it causes spamassassin to be invoked twice for each message.

  • This file can be split into smaller task-based files, but this is not done in the example.

Take a look at /home/mwolson/.procmailrc and the /home/mwolson/procmail.d directory for a procmail configuration that is composed of several smaller files.

Example file

# Example procmailrc filters
#
# We use a maildir here at hcoop.net
#
# Change these to match your username!
HOME=/afs/hcoop.net/user/m/mw/mwolson
MAILDIR=/afs/hcoop.net/common/email/m/mw/mwolson
DEFAULT=$MAILDIR/

# See the manpages `procmailrc' and `procmailex' for explanations
# of the syntax involved.

# The following 2 rules come before the spam rules because we
# want to make sure that email from these people get through.
# It's a form of whitelisting.

# Stuff from the family
:0
* ^From.*(familymember1@msn|familymember2@yahoo)
.Family/

# Work-related
:0
* ^From.*person@somecollege
.Work/

# If mail hasn't been put through spamassassin, do so now
:0 fW
* !^X-Spam-Level:
| spamc

# All mail tagged as spam (eg. with a score higher than the set
# threshold) is definitely spam.
:0
* ^X-Spam-Status: Yes
.Spam.Definitely/

# If it scores 3 or better, it's probably spam.
:0
* ^X-Spam-Level: \*\*\*
.Spam.Probably/

# The Debian Bug-Tracking System forwards me a copy of each bug report
# I send in.  Since I don't already have a copy of this report, put it
# in my Sent box.
:0
* ^From:.*me@hcoop\.net
* ^To:.*submit@bugs\.debian\.org
.Sent/

# Local mail (error messages and the like)
:0
* ^(To:|From).*local\.domain\.org
.Local/

# Vending stuff
:0
* ^To:.*me(\+|_)vending@domain\.org
.Vending/

# School-related
:0
* ^To:.*me\+school@domain\.org
.School/

# Crap sent to all students
:0
* ^(To|Cc):.*[Rr]-[Uu]sers_
.Spam.Ignore/

# Bug reports
:0
* ^(From|To|C[c]):.*(bugs\.debian\.org|bugzilla\.)
.Bugs/

# LifeReader mailing list
:0
* ^(From|To|C[c]):.*liferea-devel@lists
.Lists.LifeRea/

# Neki_Fujiyama (Samurai Pizza Cats) list
:0
* ^(From|To|C[c]):.*[Nn]eko_[Ff]ujiyama@yahoogroups
.Lists.Neko_Fujiyama/

# Hcoop mailing list
:0
* ^To:.*users@hcoop
.Lists.HCoop/

# InfoWorld newsletters
:0
* ^From.*@newsletter\.infoworld
.Lists/

# Other lists
:0
* ^(From|To|C[c]):.*(@lists\.|@yahoogroups)
.Lists/

# Anything I've sent should go to Test
:0
* ^From:.*(mwolson@|@mwolson\.org)
.Test/

Another Example

I based my .procmailrc on the file above. However, I don't trust my procmail coding skills, so I had procmail create a log file of the messages that it receives, as well as a backup copy of each message for testing purposes. I also decided that the "Sender:" field is the best one to use for the lists that I receive, so I filter on this field. I took code in my .procmailrc from the "procmailex" man page, which I highly recommend.

I created the directory "log" in my home directory for the log file before putting the .procmailrc in place. I also created the folders to which mail would be filtered in thunderbird, although I'm not absolutely sure if this step is necessary.

Note that you should probably comment out the "backup" section once you're sure that your code works in order to save space. You will also have to rotate or truncate the procmail log file manually, or write a script for cron to use.

{{{## JustinLeitgeb .procmailrc

# We use a maildir here at hcoop.net MAILDIR=$HOME/Maildir DEFAULT=$MAILDIR/

# Create a log file in my home directory under "log", which will have to be # created manually. LOGFILE=/home/leitgebj/log/procmail.log

# Make a backup of all mail that we'll wipe out when we're sure that # filtering is working correctly. :0 c .backup/

# CFP (call for papers) list :0 * ^Sender.*owner-cfp@lists.sas.upenn.edu .lists.CFP/

# plone-users :0 * ^Sender.*plone-users-bounces@lists.sourceforge.net .lists.plone-users/

# nflug :0 * ^Sender.*nflug-bounces@nflug.org .lists.nflug/}}}

MemberManual/Email/Procmail (last edited 2013-01-14 09:11:02 by ClintonEbadi)