4.1 Setting up Filter

Date: 18 Apr 1995 00:04:10 GMT
From: FAQ Editor <faq-editor@ii.com>
Followup-To: comp.mail.elm

1] Find out if filter is on your system and what the full path to it is.  
   If you are using the C shell (csh) type:

     which filter

   Or, if you are using the Korn shell (ksh) or the Bourne shell (sh) type:

     type filter

   If neither ``which'' nor ``type'' are on your system try ``where'' and
   ``whereis''.  If your system doesn't have filter ask your system 
   administrator to install it; or even better ask her to install procmail.


2] Note the full path of your home directory by typing:

     cd
     pwd


3a] Create ~/.elm/filter-rules.  (Note that throughout this article I use
    pico for editing files.  Replace ``pico'' with your editor.)

     cd
     mkdir .elm
     cd .elm
     pico filter-rules

  
3b] Enter a modified version of the following in your ~/.elm/filter-rules

     if (subject contains "test") then save "/j/nancym/Mail/IN.testing"
   
   Replace /j/nancym with your home directory path (see step 2).
   Replace /Mail with the name of the directory where your mail folders are
   stored.  Pine and Berkeley Mail use /mail (lower case m) and Elm uses 
   /Mail (upper case M).
   

4] To see what the filter rule will do type the following at your Unix 
   prompt:  

     filter -r


5a] Create a ~/.forward file by typing the following. (Pico's -w flag tells 
    pico not to auto wrap lines.)

      cd
      pico -w .forward


5b] Enter a modified version of the following in your ~/.forward:


     "|/usr/local/bin/filter -o /j/nancym/.elm/filter-errors"


    == IMPORTANT NOTES ==
    * Make sure you include the quotes (").
    * The vertical bar (|) is a pipe.
    * Replace /usr/local/bin with the correct path for filter (see step 1).
    * Replace /j/nancym with your home directory (see step 2).
   
    * Do NOT expect environment variables, like $HOME, to work in your 
      .forward file.
    * Do NOT expect ~ to mean your home directory in the .forward file.


5c] Note that on many systems you need to make your .forward is world 
    readable and your home directory world searchable in order for the
    mail transport agent to "see" it.  To do this type:
   
      cd
      chmod 644 .forward
      chmod a+x .


6] Send yourself two test messages: one with ``test'' in the subject
   and one without ``test'' in the subject.


7a] Start your mailer (pine, elm, etc.) and check that the messages
    were delivered correctly.  The one with ``test'' in the subject
    should be in the folder IN.testing and the one without ``test'' 
    in the subject should be in your inbox.  If these were delivered 
    correctly go on to step 8.


7b] TROUBLESHOOTING
    * If the two messages were not delivered correctly look at your
      ~/.elm/filter-errors to see if you can determine what the problem 
      is.  

    * Check these two files for typos:
        ~/.forward
        ~/.elm/filter-rules

    * Check the file and directory permissions of your .forward (set in 
      5c above).

      Type...          In order to...
      -------          --------------
      cd               Go to your home directory.
      
      ls -l .forward   Check the permission: it should say -rw-r--r--
      
      ls -ld .         Check permission of home dir: it should say drwx?-x?-x
                       The ?'s may be r's or hyphens or one of each (i.e.,
                       drwx--x--x, drwxr-xr-x, drwxr-x--x, drwx--xr-x).
      

    * If none of these turn up the problem edit your ~/.forward so
      that filter will be verbose with it's output (use the -vo flag).

        "|/usr/local/bin/filter -vo /j/nancym/.elm/filter-errors"

      And repeat steps 6 and 7.  After you get filter to work you 
      will probably want to change the ``-vo'' flag back to ``-o''.

   
8]  After you have successfully tested filter in steps 6 and 7, edit
    ~/.elm/filter-rules so that it contains a modified version of the
    following:

     # if (subject contains "test") then save "/j/nancym/Mail/IN.testing"
     if (to contains "www-talk") then save "/j/nancym/Mail/IN.www-talk"
     if (to contains "hopos-l") then save "/j/nancym/Mail/IN.hopos"

     Replace /j/nancym with your home directory path and
     /Mail with the name of your mail directory.  Replace the mailing 
     list string (e.g., "www-talk") and the name of the mail folder
     (e.g., IN.www-talk) with text for your mailing lists.

     Note that ``to contains...'' means either the To or Cc header contains...

     Rather than deleting the test line, it's useful to just turn it
     into a comment (by preceding it with #) so that you can easily
     use it for future testing.

Parent document is top of "Filtering Mail FAQ"
Previous document is "4.0 Filter"
Next document is " 4.2 Tracking Your Incoming Mail"