2001 07 Procmail Email Delivery


MAILBOX KNOW HOW
Mail Delivery made easy
PROCMAIL
COLIN MURPHY
Last month s article described how to set up and configure a basic
mailserver for dial-up machines, giving you control of your email, rather
than relying on monolithic mail programs like Netscape Messenger.
Fetchmail was charged with the responsibility of collecting email from
your ISP, now we have to do something with it to make all of this
worthwhile.
Procmail is a small but powerful program, Poses a very low impact on your system s
which will not only act as our mail delivery resources (it s 1.4 times faster than the average
agent  moving the mail from our local mailserver /bin/mail in user-CPU time)
to where a local user can read their messages Allows for very easy-to-use, yes/no decisions on
in the home directory  it will also allow us where the mail should go (can take the size of the
to filter, or otherwise process, our mail. It mail into consideration)
will either remove unwanted mail or organise Also allows for neural net-type weighted
wanted messages so that they are not buried scoring of mails
in a pile of spam screaming about get-rich- Filters, delivers and forwards mail *reliably*
quick pyramid schemes. As with Postfix and Provides a reliable hook (you might even say
Fetchmail, Procmail is widely available, being anchor) for any programs or shell scripts you may
supplied with all of the boxed set distributions wish to start upon mail arrival
we ve tried. Supports four mailfolder standards: single
Procmail is a feature-rich program that no file folders (standard and non-standard VNIX
overview could fully describe, all we can do here is format), directory folders that contain one file per
give you a taste for the powerful control this message, or the similar MH directory folders
application could unleash on your email handling. (numbered files)
Here s a list of some of the things it can do as Native support for /var/spool/mail/b/a/bar type
described in the documentation that comes with mailspools
procmail: Variable assignment and substitution is an
Event driven (invoked automagically when mail extremely complete subset of the standard /bin/sh
arrives) syntax
Does not use *any* temporary files Provides a mail log file, which logs all mail
Uses standard egrep regular expressions arrival, shows in summary whence it came, what it
10 · 2001 LINUX MAGAZINE 61
KNOW HOW MAILBOX
was about, where it went (what folder) and how You will need to confirm that the directories
long (in bytes) it was are actually available otherwise your precious
Uses this log file to display a wide range of email may go missing. With the latest Procmail
diagnostic and error messages (if something goes versions, it is mandatory that this file is not writable
wrong) by any user other than yourself, so you may need
Does not impose *any* limits on line lengths, to run:
mail length (as long as memory permits), or the use
chmod go-w ~/.procmailrc
of any character (any 8-bit character, including  \0
is allowed) in the mail Procmail compares every email it has against
It has man pages (boy, does it have man pages) this file. As it stands, all the emails will move your
Procmail can be used as a local delivery agent mail into the default standard mail directory, not
with comsat/biff support (*fully* downwards very exciting so to this file we should add some
compatible with /bin/mail); in which case it can heal filtering recipes:
your system mailbox, if something messes up the
permissions
:0 # Anything from thf
Secure system mailbox handling (contrary to
* ^From.*thf@somewhere.someplace
todd # will go to $MAILDIR/todd
several well-known /bin/mail implementations)
Provides for a controlled execution of programs
and scripts from the aliases file (i.e. under defined This is very straightforward. The :0 signifies the
user ids) start of a new recipe, on the second line the * tells
Allows you to painlessly shift the system us that this is a conditional command, the  From
mailboxes into the users home directories header in the email is compared to the text
Procmail calls on .procmailrc, a file in the users expressions, the third line shows the directory to
home directory, which you will need to write with which the email would be sent should the condition
your favourite text editor. In its simplest form, you about prove true, if we have remembered to create
just need to set up some default variables so that it the directory first! So, emails from
knows where to find and post its work, it needs to thf@somewhere.someplace and
look something like this: 123thf@somewhere.someplace should all now
appear in the todd subfolder in KMail
PATH=$HOME/bin:/usr/bin:/usr/ucb:/bin:/usr/U
Here are some more examples:
local/bin:.
MAILDIR=$HOME/Mail # You d betterU :0 # Anything fromU
make sure it exists people at uunet
DEFAULT=$MAILDIR/mbox * ^From.*@uunet
LOGFILE=$MAILDIR/from uunetbox # will go toU
LOCKFILE=$HOME/.lockmail $MAILDIR/uunetbox
A quick-start tutorial
62 LINUX MAGAZINE 10 · 2001
MAILBOX KNOW HOW
[left]
faqs galore
[right|]
Procmail.org is always
worth a look
:0 # Anything fromU You re not limited to moving emails from
Henry
folders  you can also copy them. This would allow
* ^From.*henry
you to keep logs of all emails received, recording
henries # will go toU
just the details you think are necessary. This could
$MAILDIR/henries
mean merely logging the time, subject and From
# Anything that has not been delivered byU header fields or preserving the entire email, a copy
now will go to $DEFAULT
of which could be sent directly to some
# using LOCKFILE=$DEFAULT$LOCKEXT
archive/compression routine.
Procmail comes with a wealth of
These mail subdirectories will appear in the mail documentation and there are lots of third party
user agent, KMail for instance, as subfolders. tutorials, faqs and discussion groups probably
Should you be using some other MUA, you should because it is an ideal utility to tinker with, as well as
Bristol University is helpful
bear in mind that the mail folder used by default providing a much-needed service. % in setting up filters
might be different. Netscape, for example,
uses $HOME/nsmail by default for its mail
folder, so that s what you would set the MAILDIR
variable to.
This still hasn t done anything outstanding
though, nothing that we couldn t have achieved
using the built-in filtering routines in programs like
Netscape.
The .procmailrc file is nothing more than a shell
script, there is nothing to stop us from calling other
scripts should a filtering condition be met, and this
is where the power and control lie. With some
creative .procmailrc files you can automatically
delete all these unwanted, unsolicited commercial
emails which clog up the inbox, or fire klaxon
warnings should you receive a message from your
editor telling you how late your copy is. Procmail
comes with some other utility programs  Formail is
one. With these you could write a script to reformat
digest mailing list messages back to their original
form, making it much easier to follow the thread of
a discussion, like so:
:0
* ^Subject:.*Digest
|formail +1 -d -s procmail
LOGFILE=$MAILDIR/from # Put itU
here, in order to avoid logging
# theU
arrival of the digest.
10 · 2001 LINUX MAGAZINE 63


Wyszukiwarka

Podobne podstrony:
2001 07 Gimp Workshop Photograph Reprocessing
2001 07 Apple Ibook and Powerbook with Linux
2001 07 Szkoła konstruktorów klasa II
2001 07 Imap Mail Protocol
2001 07 Burn
2005 07 Audio Delivery Podcatching without an Ipod
2005 07 Bird Security Secure Email with Thunderbird and Enigmail
82?07 POL ED02 2001
1807 POL ED02 2001
84?07 POL ED02 2001
86?07 POL ED02 2001
26 07 POL ED02 2001
91?07 POL ED02 2001
16 07 2001
07 Charakteryzowanie budowy pojazdów samochodowych

więcej podobnych podstron