procmail
[Top] [All Lists]

A better understanding of .forward IFS & exit 75

2001-09-14 12:48:54
1. Whenever one particular user sends me email, she gets: 
   > ----- The following addresses had permanent fatal errors ----- 
   >"|IFS=' ' && exec /usr/local/bin/procmail -f- || exit 75 #john" 
   > (expanded from: <john(_at_)pophost(_dot_)Cadence(_dot_)COM>) 

2. I do not even know what the message is indicating. 

   The message _seems_ to be echoing my ~/.forward file 
   on pophost.Cadence.COM (which is my pop3 server) - yet 
   I get (plenty, believe me, hundreds) of email (from others).

3. Debugging ... I (think I) see: 
   pophost> ls -l ~/.forward 
            Indicates permissions are 644 (world readable): 
            -rw-r--r-- 1 john .forward 
   pophost> cat ~/.forward 
            Returns the following line: 
            "|IFS=' ' && exec /usr/local/bin/procmail -f- || exit 75 #john
   Which interprets, I think to:
    a) "|IFS=' '" === I think, means 'set the sh shell variable 
        for Internal Field Separators to a space'. 
    b) "&&" === is a logical 'and' operator. 
    c) "exec /usr/local/bin/procmail -f-" === I think, means forward 
        all mail to the procmail executable. 
    d) "||" === is a logical 'or' operation. 
    e) "|| exit 75" === says something like: 
       "if the IFS or procmail part of this expression 
       returns 0, then please exit with a status of 75". 
    f) I'm not sure what a 'status of 75' means, but, it may be the 
       exit code specified in /usr/include/sysexits.h, e.g., 
         77 ===> permission denied 
         67 ===> addressee unknown 
         etc.
    g) So, in summary, I think this equates to something like: 
    i) Every keyword in the email must have a space after it 
       (e.g., "To:<space>") to be considered a keyword ???????? 
       NOTE: I'm just guessing as to what IFS means based on:
             csh% man sh | col -b > /tmp/sh.man 
             csh% vi /tmp/sh.man
   ii) and forward the mail to procmail; 
  iii) if that fails for some reason, exit with a 75 status. 

Now, if this interpretation is correct, (then I guess) we start 
with the exit code of 75 - which, from /usr/include/sysexits.h 
seems to indicate:
 csh% grep 75 /usr/include/sysexits.h 
      REPORTS: 
      #define EX_TEMPFAIL 75 /*temp failure; user is invited to retry */

Well... uh ... er ... um ... that got me nowhere fast. 
I don't have a clue what the problem is.

Q: Anyone have any (better) ideas how to interpret the error message: 
   > ----- The following addresses had permanent fatal errors ----- 
   >"|IFS=' ' && exec /usr/local/bin/procmail -f- || exit 75 #john"
jjg
"cc john(_at_)cadence(_dot_)com (as well as a reply to the list) would be nice"

_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail

<Prev in Thread] Current Thread [Next in Thread>
  • A better understanding of .forward IFS & exit 75, John Gianni <=