Regex Help For Procmail

Drew Tomlinson drew at mykitchentable.net
Sun Sep 5 16:33:38 UTC 2010


  On 9/3/2010 2:12 PM, Drew Tomlinson wrote:
>  Hi Glen,
>
> Thank you for your reply.
>
> On 9/3/2010 12:02 PM, Glen Barber wrote:
>> Hi Drew,
>>
>> On 9/3/10 2:45 PM, Drew Tomlinson wrote:
>>>   I use procmail for mail delivery and I'm trying to concoct the right
>>> regex to match From: headers and deliver to a folder.  However mail is
>>> sent from various addresses so I want to match all that end with
>>> "famous-smoke.com>".  Here's an example of a header:
>>>
>>> From: "Famous Smoke Shop"<Announce at email.famous-smoke.com>
>>>
>>> Because I also occasionally order, I don't want to catch mail from
>>> anything that has the word "Orders" and "Famous" in the From field.
>>> Thus here is my procmail recipe:
>>>
>>> # Deliver order info to inbox
>>> :0
>>> *^From:.[Ff]amous.*[Oo]rder.*famous-smoke.com>$
>>> "${HOME}/Maildir/new/"
>>>
>> Is this supposed to be "match Famous OR Order"?  This currently matches
>> "Famous AND Order".
>
> No, I want "Famous AND Order".
>
>>> # Deliver other email to folder
>>> :0
>>> *^From:.*famous-smoke.com>$
>>> "${HOME}/Maildir/.Shopping/Famous Smoke/Email/"
>> Going by your examples, you want to catch "Famous OR Order" and place
>> that in Maildir/new, and all other email from this address to go to
>> Maildir/.Shopping/...
>>
>> Try this:
>>
>> # catch "famous" or "order"
>> :0
>> * ^From:.*([Ff]amous|[Oo]rder).*famous-smoke.com>$
>> "$HOME/Maildir/new"
>>
>> # catch everything else from this sender
>> :0
>> * ^From:.*famous-smoke.com>$
>> "$HOME/Maildir/.Shopping/Famous Smoke/Email/"
>>> According to my procmail log, the From: header does not match.  I would
>>> expect the example From: header above to match the second regex and be
>>> delivered to the specified folder. Where is my error?
>> If my assumption above is incorrect, could you paste a snippet from your
>> procmail log and point out what should be matching so we can have a
>> specific example?
>
> This is the actual log entry from the example I used in this email:
>
> From Announce at email.famous-smoke.com  Fri Sep  3 10:11:08 2010
>  Subject: Another Must-Attend Event at Famous!
>   Folder: /home/<mydir>/Maildir/new/1283533874.95147_0.blacklamb.     
> 8161
> procmail: [95164] Fri Sep  3 10:13:05 2010
> procmail: Assigning "NL=
> "
> procmail: Assigning "LOG=
> /home/<mydir>/Procmail/famous_smoke.rc"
>
> /home/<mydir>/Procmail/famous_smoke.rc
> procmail: No match on "^From:.[Ff]amous.*[Oo]rder.*famous-smoke.com>$"
> procmail: No match on "^From:.*famous-smoke.com>$"
> procmail: Assigning "VERBOSE=OFF"
>
>
> I think my problem is that I was missing a "space" between "*" and 
> "^From:".  Your example shows a space and a reply from Brent Bloxam 
> suggests this is the problem as well.  I don't quite understand the 
> difference between the two but have made the change and I'll see if it 
> works.  I'm also going to hit Google and see if I can understand.

No, still not matching.  Basically, why doesn't this header:

From: "Famous Smoke Shop" <Announce at email.famous-smoke.com>

Match this procmail recipe:

:0
* ^From:.*famous-smoke.com>$
"${HOME}/Maildir/.Shopping/Famous Smoke/Email/"

 From my procmail log:

procmail: No match on "^From:.*famous-smoke.com>$"

Thanks,

Drew

-- 
Like card tricks?

Visit The Alchemist's Warehouse to
learn card magic secrets for free!

http://alchemistswarehouse.com



More information about the freebsd-questions mailing list