home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / mail / procmail / pointers next >
Encoding:
Internet Message Format  |  2004-05-05  |  25.9 KB

  1. Path: senator-bedfellow.mit.edu!dreaderd!not-for-mail
  2. Message-ID: <mail/procmail/pointers_1083675484@rtfm.mit.edu>
  3. Supersedes: <mail/procmail/pointers_1082292761@rtfm.mit.edu>
  4. Expires: 2 Jun 2004 12:58:04 GMT
  5. X-Last-Updated: 1999/04/28
  6. Organization: none
  7. From: <jari.aalto@poboxes.com> (Jari Aalto+mail.procmail)
  8. Subject: Procmail pointers
  9. Summary: This post contains excerpts from Procmail Tips page at
  10.   which contains lot of infomation about Procmail, ube (aka spam),
  11.   email headers, RFC headers etc. Athor's homepage is at
  12.   http://poboxes.com/jari.aalto/
  13. Newsgroups: comp.mail.misc,comp.answers,news.answers
  14. Approved: news-answers-request@MIT.EDU
  15. Followup-To: poster
  16. Precedence: bulk
  17. Originator: faqserv@penguin-lust.MIT.EDU
  18. Date: 04 May 2004 13:01:16 GMT
  19. Lines: 535
  20. NNTP-Posting-Host: penguin-lust.mit.edu
  21. X-Trace: 1083675676 senator-bedfellow.mit.edu 567 18.181.0.29
  22. Xref: senator-bedfellow.mit.edu comp.mail.misc:79466 comp.answers:57062 news.answers:270895
  23.  
  24. Archive-name: mail/procmail/pointers
  25. Posting-Frequency: 2 times a month
  26. Maintainer: Jari Aalto <jari.aalto@poboxes.com>
  27.  
  28. Announcement: "Procmail resources"
  29.  
  30.         Last updated: 1999-04-21 v1.72 pm-tips.txt
  31.  
  32.         Faq archive is at
  33.  
  34.             http://www.faqs.org/faqs/
  35.  
  36.         The following list below is an excerpt from a bigger document.
  37.  
  38.             http://www.procmail.org/jari/pm-tips.html
  39.  
  40.         My Procmail module library page is at
  41.  
  42.             http://www.procmail.org/jari/pm-tips.html
  43.  
  44.         Era's exellent procmail link page (including procmail FAQ) is at
  45.  
  46.             http://www.iki.fi/~era/procmail/links.html
  47.  
  48. 4.0 Procmail pointers
  49.  
  50.     4.1 Where to get procmail binary
  51.  
  52.         ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/
  53.  
  54.     4.2 Where is procmail developed
  55.  
  56.         Philip Guenther <guenther@gac.edu> is currently taking care of and
  57.         coordinating procmail bug fixes. Please send any procmail bugs to
  58.         the mailing list or to <bug@procmail.org>. The development mailing
  59.         list is running SmarList at <procmail-dev@procmail.org>. Furher
  60.         patch and bug info can be found at:
  61.  
  62.             http://www.gac.edu/~guenther/procmail/todo.html
  63.             http://www.gac.edu/~guenther/procmail/warts.html
  64.  
  65.         Newest Procmail code:
  66.  
  67.             http://www.procmail.org/
  68.             ftp://ftp.procmail.org/
  69.  
  70.     4.3 About procmail's Y2K compliance
  71.  
  72.         Please consult Philip Guenther <guenther@gac.edu> for more up to date
  73.         details. Philip is the Procmail maintainer currently.
  74.  
  75.         [1998-09-23 Bennett Todd <bet@mordor.net> in Message-Id:
  76.         <19980923164230.C30594@fcmc.com>] Well, from a simple ogle of the
  77.         grep over the sources, it looks like there may be a Y2038 problem
  78.         in the autoconf test code: unsigned otimet = time(). And another,
  79.         possibly less likely to express itself, in formail.c: unsigned long
  80.         h1 = time(). Those could express themselves when 32-bit signed
  81.         time_t wraps; long before then the time_t define should have been
  82.         changed to something that is bigger, even it's "long long". The
  83.         above type-mixes may fail to profit from a suitably redefined
  84.         time_t, and so may overflow on 2038.
  85.  
  86.         I don't see any Y2K problems, though. And email headers use
  87.         four-digit years pretty consistently, so that should all be cool.
  88.         This estimation doesn't constitute an in-depth Y2k audit of
  89.         procmail, but the source code to procmail is ... kinda dense for
  90.         in-depth auditing.
  91.  
  92.         [1998-09-25 Bennett Todd Message-Id:
  93.         <19980925093902.B12428@fcmc.com>] As I see it there are at least
  94.         three measures that a whole email system, taken in aggregate, could
  95.         use for Y2K checking. First, capture a vast cross-section of
  96.         traffic and make sure no email software is using 2-digit years. I
  97.         don't recall having seen any, but it's still worth checking.
  98.         Second, generate a load of traffic with 2000 and 2001 dates and
  99.         shove it through all the channels. And third, run all the systems
  100.         end-to-end with their system clocks rolling over the millenium.
  101.  
  102.     4.4 Procmail mailing lists
  103.  
  104.         Traffic in this list is about 5-20 messages per day. Do not join
  105.         if you can't handle that much traffic. The list is run by SmartList,
  106.         which is a procmail based list software.
  107.  
  108.         ._MailingList_: questions/answers <procmail@informatik.rwth-aachen.de>
  109.         .subscription requests <procmail-request@informatik.rwth-aachen.de>
  110.         .digest request <procmail-d-request@informatik.rwth-aachen.de>
  111.  
  112.        To get off the procmail mailing list
  113.  
  114.         To get off the list: send a message to *procmail-request* with:
  115.  
  116.             unsubscribe user@domain         in the subject line
  117.             unsubscribe                     first line in the body
  118.  
  119.         If that fails, try email to
  120.         <procmail-owner@informatik.rwth-aachen.de> (purportedly that should
  121.         go to a person). See also the original subscriptions message that
  122.         you will received http://www.iki.fi/~era/procmail/welcome.txt
  123.  
  124.     4.5 Procmail recipe modules and faqs
  125.  
  126.         Procmail is discussed in usenet newsgroup *comp.mail.misc*.
  127.  
  128.        "Procmail archive"
  129.         ftp://ftp.informatik.rwth-aachen.de:/pub/packages/procmail/
  130.         Articles from procmail mailing list: covers from 1994-08 to 1995-05
  131.         (A .gz file: ~2Meg when uncompressed)
  132.  
  133.         And Latest articles can be found here, hosted by Achim Bohnet
  134.         Covers from 1995-10 to the present day.
  135.         <ach@mpe.mpg.de>. The www page has nice search capabilities.
  136.         http://www.rosat.mpe-garching.mpg.de/mailing-lists/procmail/
  137.         http://www.rosat.mpe-garching.mpg.de/~ach/exmh/archive/procmail/
  138.  
  139.        "Era's Procmail faq"
  140.         http://www.iki.fi/~era/procmail/mini-faq.html
  141.         http://www.dcs.ed.ac.uk/~procmail/faq/          [mirror]
  142.         Also available by email, the ITEM can be: links.html, mini-faq.html,
  143.         procmail-faq
  144.  
  145.             To: <era+pr@iki.fi>
  146.             Subject: send ITEM
  147.  
  148.        "Era's Procmail Link collections"
  149.         http://www.iki.fi/~era/procmail/links.html
  150.         ...A page with full of good links to the world of procmail
  151.  
  152.        "Catherine's Getting Started With Procmail"
  153.         http://shell3.ba.best.com/~ariel/nospam/proctut.shtml
  154.         This is a quick tutorial intended to get a procmail neophyte
  155.         started using procmail with as little trouble and fuss as possible.
  156.  
  157.        "Joe Gross's short Procmail tutorial"
  158.         http://www.procmail.net/ <jgross@stimpy.net> ...Using procmail and a
  159.         feature of ph you can set up your own mailing list without
  160.         neededing root on your own machine.
  161.  
  162.        "Unix manpages"
  163.         http://www.xs4all.nl/~pater/manpages/
  164.         ...If you don't have procmail manpages at hand, check this site.
  165.         It contains wealth of Unix related manpages online.
  166.         <pater@xs4all.nl> Jeroen Paternostre
  167.  
  168.     4.6 Procmail Lint service (code check)
  169.  
  170.           _NOTE_: This service has closed 1999-04-20. It has been mentioned
  171.           here for historical reasons only.
  172.  
  173.         If you have and can use Emacs, please download the Procmail
  174.         programming mode, `tinypm.el', that [jari] has written. Lint is
  175.         included in there and it can auto-correct mistakes on the fly. You
  176.         can get it from the mentioned _uta_ ftp site (get tgz kit).
  177.  
  178.         Because not all people know how to use Emacs, how to use Emacs lisp
  179.         packages or are otherwise clueless about Unix tools, I put up
  180.         a procmail based Lint service where you can send your code.
  181.  
  182.             To: jari.aalto@poboxes.com
  183.             Subject: send pm-lint.hlp
  184.  
  185.         This service is highly experimental and if traffic starts to get
  186.         too high, I have to close it because every message to the lint
  187.         starts a background Emacs process and it consumes server
  188.         resources. The preferred way is that you get your own Emacs package
  189.         and Lint your code locally. When you send a message to the Lint
  190.         it will respond to you with a message similar to this one:
  191.  
  192.             *** 1997-11-24 22:13 (pm.lint) 3.11pre7 tinypm.el 1.80
  193.             cd /users/jaalto/junk/
  194.             pm.lint:010: Warning, no right hand variable found. ([$`']
  195.             pm.lint:055: Pedantic, flag orer style is not standard `hW:'
  196.             pm.lint:060: Warning, message dropped to folder, you need lock.
  197.             pm.lint:062: Warning, recipe with "|" may need `w' flag.
  198.             pm.lint:073: Warning, Formail used but no `f' flag found.
  199.  
  200.     4.7 Procmail module list
  201.  
  202.        Where to get the modules
  203.  
  204.         The UBE stop procmail modules are not listed here. See pointers in
  205.         "procmail code" section later.
  206.  
  207.         o   All pm-ja*.rc modules are in Jari's procmail kit. Also
  208.             available ay Procmail code library page is at
  209.             http://www.netforward.com/poboxes/?jari.aalto --> pm-code.html
  210.  
  211.         o   Other modules are by Alan Stbbens http://reality.sgi.com/aks/
  212.  
  213.         o   1998-12-08 Eli the Bearded <*@qz.to> announced in
  214.             comp.mail.misc that he had put his own procmail modules to
  215.             visible at http://www.qz.to/eli/src/procmail/. You may find
  216.             interesting procmail code there but the modules itself are not
  217.             general purpose *plug-in* modules that you could use right
  218.             away. Some functionality included:
  219.  
  220.                 Inline decoding of MIME text attachments        (rc.mime-decode)
  221.                 Cleansing of obscure "Re:" formats in subject   (rc.pre-list)
  222.                 Nifty autoresponder                             (rc.qz-2)
  223.                 Sophisticated dupicate email catching           (rc.dupes)
  224.                 Example of using my mail bouncer                (rc.lists-out)
  225.                 Detection of some classes of autoreplies        (rc.daemon)
  226.                 Various junk mail filtering                     (rc.filter)
  227.                 Daily log files                                 (rc.vars)
  228.  
  229.        Terminology
  230.  
  231.         *subroutine* = A piece of code that gets something in `INPUT' and
  232.         responds with `OUTPUT'. Subroutine is not message specific.
  233.  
  234.         *recipe* = A piece of code, that is somewhat self containing:
  235.         It reads something from the message or does something
  236.         according to matches in message. Recipe may be message specific.
  237.  
  238.        Foreword to using modules
  239.  
  240.         In the module listing, some of the modules are recipes and some can
  241.         be considered subroutines. Let's take the address explode module
  242.         that was discussed a while ago. First, visualise following familiar
  243.         programming language pseudo code:
  244.  
  245.         (ret-val1, ret-val2 ...) = Function( arg1, arg2, arg3 ...)
  246.  
  247.         *Function* may return multiple arguments and multiple arguments can
  248.         be passed to it. Clear so far. Let's show how this applies to
  249.         procmail modules:
  250.  
  251.             RC_FUNCTION  = $PMSRC/pm-xxx.rc # name the subroutine/module
  252.             RC_FUNCTION2 = ...
  253.  
  254.             INPUT       = "value"           # Set the arg1 for module
  255.             INCLUDERC   = $RC_FUNCTION      # Call Function( $arg1 )
  256.  
  257.             :0                              # Examine function ret val
  258.             * ERROR ?? yes
  259.             ...
  260.  
  261.         This should be pretty clear too. You just have to look into the
  262.         subroutine/module, which you intend to use, to find out what
  263.         arguments it wants which you _need_ _to_ set (INPUT) before calling
  264.         it. The documentation also tells you what values are returned, eg.
  265.         one of them was ERROR.
  266.  
  267.         If it were recipe/module, the call would be almost the same, but
  268.         instead of returning values, the recipe/module most likely does
  269.         something to your message or writes something to the data files or
  270.         etc. *Recipe/module* is much higher level hierarchy, because it may
  271.         call multiple subroutine/modules. The distinction between
  272.         subroutine and recipe module type is not crystal clear, but I hope
  273.         the above will clarify a bit the Procmail module/subroutine/recipe
  274.         concept.
  275.  
  276.        Header file modules
  277.  
  278.         These are like #include .h files in C, they define some common
  279.         variables, but do not contain actual code.
  280.  
  281.         o   pm-javar.rc -- Defines standard variables: SPC WSPC NSPC SPCL and
  282.             perl styled \s \d \D \w \W and \a \A (alphabet only)
  283.         o   headers.rc -- From Alan's procmail-lib. Define standard regexp
  284.             and macros: address, from, to, cc, list_precedence
  285.  
  286.        General modules
  287.  
  288.         o   *pm-jafrom.rc* -- Derive FROM field without calling `formail'
  289.             unnecessarily. If all fails, use formail.
  290.         o   *get-from.rc* -- From Alan's procmail-lib. get the "best" from
  291.             address. Sets FROM and FRIENDLY, the latter being the "friendly"
  292.             user name sans any address.
  293.         o   *pm-jaaddr.rc* -- Subroutine to extract various email components
  294.             from INPUT. Like address=foo@some.com, net=com, account=foo...
  295.         o   *pm-jastore.rc* -- Subroutine for general mailbox delivery.
  296.             Define MBOX as the folder where to drop
  297.             message and this subroutine will store it appropriately.
  298.             Supports single mboxes, ".gz" mbox files, directory files and
  299.             MH folders with rcvstore.
  300.  
  301.        Date and time handling
  302.  
  303.         For these, you extract the date from somewhere first and then feed
  304.         the string to some of these subroutines:
  305.  
  306.         o   *pm-jatime.rc* -- a lowlevel subroutine. Parse time "hh:mm:ss"
  307.             from variable INPUT
  308.         o   *pm-jadate1.rc* -- a lowlevel subroutine. Parse date
  309.             "Tue, 31 Dec 1997 19:32:57" from variable INPUT
  310.         o   *pm-jadate2.rc* -- a lowlevel subroutine. Parse ISO standard date
  311.             "1997-11-01 19:32:57" from variable INPUT
  312.         o   *pm-jadate3.rc* -- a lowlevel subroutine. Parse date
  313.             Tue Nov 25 19:32:57 from variable INPUT
  314.         o   *pm-jadate4.rc* -- Call shell command "date" once to construct RFC
  315.             "Tue, 31 Dec 1997 19:32:57" and parse the YY MM HH and other
  316.             values. You usually use this subroutine if you can't get the date
  317.             anywhere else.
  318.  
  319.        Date and time handling
  320.  
  321.         You use these recipes to get the date directly from the message:
  322.  
  323.         o   *pm-jadate.rc* -- higher level recipe. Read date from message's
  324.             headers: From_ Received, or call shell `date' if none succeeds.
  325.         o   *date.rc* -- higher level recipe.
  326.             From Alan's procmail-lib: parse date or from headers
  327.             Resent-Date:, Date, and From
  328.  
  329.        Forwarding and account modules
  330.  
  331.         o   *pm-japop3.rc* -- Pop3 movemail implemented with procmail. You can
  332.             send a "pop3" request to move your messages from account X to
  333.             account Y. Each message is send separately. This recipe listens
  334.             "pop3" requests.
  335.         o   *pm-jafwd.rc* -- controlling Forward remotedly. You can change the
  336.             forward address with a "control message" or turn on/off the
  337.             forwarding with a "control message"
  338.         o   *pm-japing.rc* -- Send short reply to subject containing word
  339.             "ping" to show that the account is up and that email address is
  340.             valid.
  341.         o   *correct-addr.rc* -- From alan's procmail lib. To help forward mail
  342.             from an OLD address to a NEW address, and do some mailing list
  343.             mail management. This recipe file is intended to make it easy
  344.             for users to forward their mail from their old address to a new
  345.             address, and, at the same time, educate their correspondents
  346.             about it by CC'ing them with the mail.
  347.  
  348.        Vacation modules
  349.  
  350.         o   *pm-javac.rc* -- A framework for your vacation replies. This
  351.             recipe will handle the vacation cache and compose an initial
  352.             reply; which you only need to fill in. (Like putting vacation
  353.             message to the body)
  354.         o   *ackmail.rc* -- From Alan's procmail lib. procmail rc to
  355.             acknowledge mail (with either a  vacation message, or an
  356.             acknowledgement)
  357.  
  358.        Message-id based modules
  359.  
  360.         o   *pm-jadup.rc* -- Handle duplicate messages by Message-Id.
  361.             Store duplicate message to separate folder.
  362.         o   *dupcheck.rc* -- From Alan's procmail-lib. If the current mail has
  363.             a "Message-Id:" header, run the mail through "formail -D",
  364.             causing duplicate messages to be dropped. Can use md5 cache.
  365.  
  366.        Cron modules
  367.  
  368.         o   *pm-jacron.rc* -- A framework for your daily cron tasks. This
  369.             recipe contains all the needed checks to ensure that your
  370.             includerc is called whenever a day changes. (Day change is
  371.             subject to messages you receive). Your own cron includerc is
  372.             run once a day.
  373.  
  374.        Backup modules
  375.  
  376.         o   *pm-jabup.rc* -- Save messages to backup directory and keep only N
  377.             messages per day. Idea by John Gianni, packaged by Jari. Note:
  378.             The implementation will always call shell for each message you
  379.             receive; so using this module is not recommended if you get
  380.             many messages per day. Instead, use the cron module to clean
  381.             the messages' backup directory only once a day, and not everytime
  382.             a message arrives.
  383.  
  384.        Confirmation modules
  385.  
  386.         o   *pm-jacookie.rc* -- Handle cookie (unique id) confirmations.
  387.             Also known as Procmail authentication service (PAS).
  388.             This simple procmail module will accept messages only from
  389.             user's who have returned a "cookie" key. You can use this to
  390.             to protect your mailing list from false "subscribe" messages
  391.             or from getting mail from unknown people, typically spammers
  392.             who won't send the cookie back to you to "validate" themselves.
  393.             Uses subroutine pm-jacookie1.rc, which generates the unique
  394.             cookie; CRC 32 by default.
  395.         o   See also Michelle's confirmation module for SmartList
  396.  
  397.        File Servers
  398.  
  399.         o   *pm-jasrv.rc* -- A Mime Procmail file server (MPFS) It contains
  400.             all the instructions and supports several MIME encoding types:
  401.             text/plain and gzip. The keyword SEND is configurable. You
  402.             can set up as many files servers as you need to different
  403.             directories by changing the SEND keyword. MPFS supports
  404.             password for file access.
  405.         o   *commands.rc* -- From Alan's procmail-lib, check for commands
  406.             in the subject line. Handles commands (send|get)
  407.             [help|info|procmail info|procmail lib|procmailrc] and few
  408.             others.
  409.         o   *send-file.rc* is a very simplistic piece of procmail code
  410.             to send file (non-MIME support) requested in subject line.
  411.             http://www.universe.digex.net/~mbr/unix/send-file.html
  412.  
  413.        Mime modules
  414.  
  415.         o   *pm-jamime.rc* -- Subroutine to read MIME headers and put the
  416.             mime version, boundary string, content-type information to
  417.             variables.
  418.         o   *pm-jamime-decode.rc* -- recipe to decode quoted-printable
  419.             or base64 encoding in the body.
  420.         o   *pm-jamime-kill.rc* -- Recipe for attachment killing: wipes out the
  421.             extra mime cruft leaving only the plain text. Applications for
  422.             killing: ms-tnef attachement (MS Explorer 7k),
  423.             html attachements (netscape, MS Express) vcard (Netscape),
  424.             PCX attachement (Lotus Notes).
  425.         o   *pm-jamime-save.rc* -- Recipe for saving simple file attachement.
  426.             When you receive _ONE_ file attachement in a message, this
  427.             recipe can save it to separate directory. The content is
  428.             also decoded (base64,qp) while saving to file.
  429.  
  430.        Filtering message body or headers
  431.  
  432.         o   *pm-jadaemon.rc* -- Handle DAEMON messages by changing subject to
  433.             reflect the a) error reason b) to whom the message was originally
  434.             sent c) original subject sent and what was the subject. Store the
  435.             DAEMON messages to separate folder.
  436.         o   *pm-jasubject.rc* -- Standardize Subject "Re[32]: FW: Sv: message"
  437.             or any other derivate to de facto "Re: message"
  438.         o   *pm-janetmind.rc* -- Reformat http://minder.netmind.com/ messages,
  439.             The default 4k message is shortened to few important lines.
  440.  
  441.        Miscellaneus modules
  442.  
  443.         o   *pm-jaempty.rc* -- check if message body is empty (nothing
  444.             relevant) Define variable BODY_EMPTY to "yes" or "no" if
  445.             message is empty.
  446.         o   *pm-janslookup.rc* -- Run nslookup on given address. If you
  447.             compose return address with "formail -rt -x To:" you can
  448.             verify if domain is registered before sending reply. Uses cache
  449.             for already looked up domains.
  450.         o   *guess-mua.rc* -- Guess the Mail User Agent and set MUA:
  451.             MH,PINE,MAIL
  452.  
  453.        Mailing list modules
  454.  
  455.         o   *Microlist* a small mailing list by david hunt <dh@west.net>
  456.             ...This version contains vars set for my environment and needs,
  457.             and requires resetting of those vars before use. It's exact
  458.             function and use will remain a mystery until I get a readme
  459.             file written for it. If anyone wants to use it, I suggest you
  460.             write to me first. If anyone has any suggestions or criticisms
  461.             (no matter how harsh) please write
  462.             http://www.west.net/~dh/homedir/microlist/microlist4.3
  463.         o   *pm-jalist.rc* -- Subroutine to extract mailing list name from
  464.             message. Do you need to add new recipe to your .procmailrc
  465.             every time you subscribe to new mailing list? If you do,
  466.             take a look at thsi module, which examines the message and
  467.             defines variable `LIST' to hold the maling list name. You
  468.             can use it directly to save the messages adaptively to
  469.             correct folders. No more hand work and manual storing
  470.             of mailing list messages.
  471.  
  472.     4.8 Where to get Procmail code and modules
  473.  
  474.        "Alan's procmail modules"
  475.         Send subject "send procmail library" to Alan Stebbens
  476.         <alan.stebbens@software.com> http://reality.sgi.com/aks/
  477.  
  478.        "pm-code, Jari's Procmail modules"
  479.         http://www.netforward.com/poboxes/?jari.aalto See pm-code.zip
  480.  
  481.        "Elijah's"
  482.         http://www.qz.to/~eli/src/procmail/rc.master.html
  483.  
  484.        "Concordia scripts"
  485.         http://alcor.concordia.ca/topics/email/auto/procmail/
  486.         ...We provide sample sets of recipes to get you started. The great
  487.         thing about the concordia scripts is the fact that they are
  488.         designed to run from a central location and be called from a
  489.         .procmailrc installed in the user's ~/home directory.
  490.         <webdoc@alcor.concordia.ca>
  491.  
  492.        "Meng on procmail"
  493.         http://icg.resnet.upenn.edu/procmail/
  494.         http://res2.resnet.upenn.edu/procmail/
  495.         ...goes into exhaustive detail about how I manage my mailing lists
  496.  
  497.         "David's" David Hunt <dh@west.net>
  498.         http://www.west.net/~dh/homedir/pmdir/
  499.         ...My .procmailrc and .forward files can be viewed at
  500.  
  501.     4.9 Procmail code to filter UBE
  502.  
  503.         _Sysadms_ _remember_ : Spam filtering is much more efficiently done
  504.         in the MTA, especially if you just looking at From and To lines.
  505.         For example, I you can setup in Exim a rule that blocks \d.*@aol\.com
  506.         (that is any aol.com local part that begins with a digit). AOL
  507.         guarantees that _none_ of their addresses being with a digit. Exim
  508.         rejects such bogus addresses at the SMTP level before the message
  509.         is received.
  510.  
  511.        "Daniel's smap filter"
  512.         1997-09-13 Daniel Smith <DanS@bristol.com> sent excellent spam filter
  513.         called `spamc.rc'. It used some nice heuristics and filters from
  514.         various people, icluding [david] and [philip].
  515.         Later Dan made substantial changes to it and the new version is
  516.         available from ftp://ftp.bristol.nl/pub/users/DanS/spamcheck
  517.  
  518.        "pm-jaube.rc Jari's ube filter (compiled from others)"
  519.         After Daniel Smith posted his spam recipes to procmail mailing
  520.         list, Jari investigated them and compiled other recipes to a
  521.         general purpose UBE module that needs no special setup and can be
  522.         installed via simple INCLUDERC. No additional ube-list files are
  523.         used, all UBE all detected happens using procmail rules. The module
  524.         is included in kit `pm-code.zip'.
  525.  
  526.        "Catherine A. Hampton's Spambouncer"
  527.         http://www.best.com/~ariel/nospam/
  528.         ...The attached set of procmail recipes/filters, which I call
  529.         The Spam Bouncer, are for users who are sick of spam (unsolicited
  530.         junk mail email) and want to filter it out of their mail as easily
  531.         as possible. These recipes can be used as shared recipes for a
  532.         whole system, or by an individual for their own mailbox only.
  533.  
  534.        "Protect yourself from spam: A practical guide to procmail"
  535.         http://www.sun.com/sunworldonline/swol-12-1997/swol-12-spam.html
  536.         ...take you, step by step, through everything you need to know in
  537.         order to enlist the aid of a Unix host in filtering unwanted e-mail
  538.         traffic. This page is excellent to get you started with procmail
  539.         and filtering with simple recipes and how to store messages to
  540.         folders. Recommended for newcomers to Procmail.
  541.  
  542.        "Junkfilter" by Gregory Sutter <gsutter@pobox.com>
  543.         http://www.pobox.com/~gsutter/junkfilter/
  544.         ...Junkfilter is a user-configurable procmail-based filter system
  545.         for electronic mail. Recipes include checks for forged headers,
  546.         key words, common spam domains, relay servers and many others.
  547.  
  548.        "Download procmail spam filters"
  549.         http://www.telebyte.com/stopspamr
  550.         This is excellent site and contains many other spam stop pointers.
  551.  
  552.        "SpamDunk"
  553.         http://www.interlog.com/~waltdnes
  554.         http://www.interlog.com/~waltdnes/beta/techie.htm
  555.         ...This webpage shows a commented example of a working .procmailrc
  556.         file that works for me. I have tried to make things as generic as
  557.         possible, but there are no guarantees that it will work for anyone
  558.         else.
  559.