From: dattier(_at_)wwa(_dot_)com (David W. Tamkin)
Date: Mon  Oct 30, 10:14am
Robert Brown wrote again:
| But, if "the subject" contains any regular expression chars (e.g., "*", 
"(",
| "?", etc.), then I'm screwed.
Right.  That's exactly what we're answering here.
   THE_SUBJECT="string including some characters that are magic in regexps"
    :0hf
    * $ ^Subject: (re: *)? *$\THE_SUBJECT
    | formail -I "Priority: A"
I hadn't tried this.  I'll give this a try.
| Do you see my problem?
I guess not, because this is the second time you've stated it, and both times
it looks like exactly what we're answering.  Maybe I see the problem but you
don't understand the answer.  Copy it carefully and give it a try, please,
with a logfile and verbose logging so that we can find out what happened if
it doesn't work.  Remember that "$\" requires at least procmail 3.11pre0.
Right, that's the version I'm using.
Moreover, I don't follow why you have to extract the subject with formail -x
or even with the MATCH operator.  Perhaps if you explained more of what
you're trying to do it would make more sense to us.
Basically, I have a sendmail that's this:
#!/bin/csh -f
cat > /tmp/resendmail.tmp
# this next line actually does the sending of the mail
procmail -p $0.proc < /tmp/resendmail.tmp
# now, give priority to subjects sent
set subject="`formail -x Subject < /tmp/resendmail.tmp | sed -e 's,\<Re: *,,g' 
-e 's,^ *,,'`"
grep "$subject" priority.proc > /dev/null
if ($status != 0) then
        echo ":Ef" >> priority.proc
        echo '*^subject: (re:)? *$\'"$subject" >> priority.proc
        echo '| formail -I "Priority: A"' >> priority.proc
endif
I guess what you're telling me is that it should say this instead:
#!/bin/csh -f
cat > /tmp/resendmail.tmp
# this next line actually does the sending of the mail
procmail -p $0.proc < /tmp/resendmail.tmp
# now, give priority to subjects sent
set subject="`formail -x Subject < /tmp/resendmail.tmp | sed -e 's,\<Re: *,,g' 
-e 's,^ *,,'`"
grep "$subject" priority.proc > /dev/null
if ($status != 0) then
        echo 'THE_SUBJECT="'"$subject"'"' >> priority.proc
        echo ":Ef" >> priority.proc
        echo '*$^subject: (re:)? *$\$THE_SUBJECT' >> priority.proc
        echo '| formail -I "Priority: A"' >> priority.proc
endif
Is this right?