procmail
[Top] [All Lists]

Re: howto make shure to get the right Received header

2005-07-30 06:36:21
Ruud

  * $ X_RECEIVED ?? [\(]from[$WS][^$WS]*[\(_at_)]\/localhost
* $ X_RECEIVED ?? \(from[$WS][^$WS]+(_at_)\/localhost

  * $ X_SENDER_IP ?? ![^$WS]

Can you say in words what this should do? I would move
the ! to the
start if you meant it to mean 'NOT':


* $ X_RECEIVED ?? [\(]from[$WS]*[^$WS]*[(_at_)]\/localhost

is 

look  in X_RECEIVED if   "(from  whitespace some no whitespace @localhost" is 
true 

and put localhost in $MATCH


  *$ ! X_SENDER_IP ?? [^$WS]

 thought to ask for "no no whitespace" with ![^$WS]

match is if not X_SENDER_IP ?? contain no whitespace 

is what your condition says or ?

may i think the wrong way

i want to know if X_SENDER_IP not matched because there is no ip in X_RECEIVED
if the first Received: is like
Received: (from filter(_at_)localhost)


  :0
  * $ ^Received:[$WS]*[^$WS]from[$WS]\/[^$WS]*

What is the '[^WS]' before the 'from'? The [$WS] after
the from is OK,
but can be passed with .*, because \/ is greedy at the
right.

it is a "(" after the Received:[$WS]
its logik that .*from[$WS] will do same
like:
* $ ^Received:.*from.*\/[^$WS]

i tryed to pick the exact format of the 

Received: (from filter(_at_)localhost)

anyway i kicked that out
and search in the first Received 
from the top who is  in X_RECEIVED


The \/[^$WS]* at the end will not always make MATCH
contain a @.

  * $ MATCH ?? [\(_at_)]\/.*[^\)]


but the second condition will 

fill $MATCH with everything after @ but not )

anyway this i also kicked out and changed to


* $ X_RECEIVED ?? [\(]from[$WS]*[^$WS]*[(_at_)]\/localhost


will do the same more simple

i human words i think

match  if "(from "some WS" "some no WS" @localhost "

is  true 

and fill $MATCH with "localhost"



Again a [\(_at_)] where I think that you mean just @. The

i wasnt shure if the @ is a reserved letter

reparse-$ at the
start is not needed.


  * $ MATCH ?? localhost

Again the reparse-$ at the start is not needed.


* $ X_RECEIVED ?? .*from[$WS]*\/($HOST|$X_LOCAL_IP)
you need to change $HOST into $\HOST, etc.

   * $ X_RECEIVED ?? .*from[$WS]*\/($\HOST|$\X_LOCAL_IP)
  :0


there i miss again some basic knowledge i guess



  * $ X_SENDER_IP ?? !$X_LOCAL_IP

Again I think that you mean

   *$ ! X_SENDER_IP ?? $X_LOCAL_IP


yes 

match
if hostname or local ip is in X_RECEIVED after from and some WS
and
if not X_SENDER_IP is  X_LOCAL_IP


Run test mesages through it, and check the VERBOSE log carefully.

is fine

Matched "localhost"
procmail: Match on "[\(]from[   ][^     ]*[\(_at_)]\/localhost"
procmail: Match on ! "[^        ]" # still with * $ X_SENDER_IP ?? ![^$WS] 

and 

procmail: Matched "its-h.de"
procmail: Match on ".*from[     ]*\/(()its-h\.de|()213\.244\.186\.210)"
procmail: No match on ! "213.244.186.210" 

where the last line is the same if i use

* $ X_SENDER_IP ?? !$X_LOCAL_IP 

or

* $ ! X_SENDER_IP ?? $X_LOCAL_IP 

Matthias
******



____________________________________________________________
procmail mailing list   Procmail homepage: http://www.procmail.org/
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail