Hi,

* Rob 'Feztaa' Park [02-07-16 03:34:04 +0200] wrote:
> Alas! Derrick 'dman' Hudson spake thus:
> > It's a crude, but effective, loop detection mechanism
> > (mentioned in RFC 821 as well).  When the MTA sees what
> > it thinks is an excessive number of Received: headers it
> > figures a mail loop has occured and bounces the message
> > instead.

> Wouldn't it be more effective to check the Received headers to see if
> it's gone through the same server twice, and /then/ bounce the mail?

RfC 2821 suggests using dump counting.

> It's not a mail loop if it just has a lot of servers to go through.

After reading a little in RfC 2821 it made me sick,
escpecially section 6.2.

,----[ rfc2821.txt ]-
| 
| 6.2 Loop Detection
| 
| Simple counting of the number of "Received:" headers in a
| message has proven to be an effective, although rarely
| optimal, method of detecting loops in mail systems.  SMTP
| servers using this technique SHOULD use a large rejection
| threshold, normally at least 100 Received entries.  Whatever
| mechanisms are used, servers MUST contain provisions for
| detecting and stopping trivial loops.
`-

(esp. ``SHOULD use a large...'', this has to read: ``MUST
 use at least 100...'')

...whatever the authors consider a mechanism to detect a
trivial loop to be. If I had to write software detecting
loops I would only check Received: headers. It needs some
more than just this: virtual domains, Received: headers can
be faked, etc. But by simply counting the number of hops the
mail went through is not really clever allthough it's
unlikely that there're 100 relays within a mail route. But
the number of hops is not necessarily low, content filters
(like virus scanners: 10 hops with 3 filters each make
already 30 hops).

   bye, Rocco

Reply via email to