[net.mail.headers] Subject: Loop control mechanisms in mailing lists

Jacob_Palme_QZ%QZCOM.MAILNET@MIT-MULTICS.ARPA (02/17/86)

Do mailing lists in Arpanet, Csnet, UUCP etc. usually contain
loop control, and if so which kind of loop control.

The most common methods for loop control are:

(1) Do not send a message to a member of the mailing list, if
that member is already in the TO, CC or BCC fields of the incoming
message, or possibly also some other field like SENDER, FROM?

(2) Save at least the Message-ID-s of the message passing the
list, and do not allow a message with the same ID to pass the
list twice.

(3) Organize the lists and sublists so that no loop occurs in
the structure.

(4) Expand all lists and sublists at one time at the original
sending of the message.

QZCOM at present uses method (1) and (2). I know that UUCP/USENET
uses method (2).

A problem with method (1) is that the name of the same recipient
can be given in many alias forms, and this will make it difficult
to understand that the name in the list and the name in the message
is the same.

A problem with method (2) is that all messages do not have any
Message-ID-s. Because of this, QZCOM always adds Message-ID-s
to messages sent to us and forwarded again from us to the nets.
At present we construct these Message-ID-s as <...@QZCOM>, but
a neater way would be to construct them from a checksum of the
from, date and contents, and then present them as <...@CHECKSUM>
as I have proposed in a message about a year ago.

I would be very interested to know which methods of loop controls
other mailing lists apply, and their experience with them.

gillies.osbunorth@xerox.ARPA (02/17/86)

another method of loop control used by some of our mail gateways:

(5) Each host physically appends a [post]mark to the message that
identifies it as "A message already acted on here".  Refuse to process
[kill] the message if it shows up later at the same host with one of
your [post]marks still in tact.

This is a good way for a gateway to prevent looping.  However, it won't
work if you're sending mail through a dumb gateway that strips off this
information to accomplish format conversion.

				Don Gillies

PKARP@SRI-IU.ARPA (Peter Karp) (02/17/86)

I believe that Unix Sendmail counts "Received:" lines in message headers,
assuming that it has detected a mail loop if this number gets past some
threshold.  Simple but effective...

Peter
-------

Jacob_Palme_QZ%QZCOM.MAILNET@MIT-MULTICS.ARPA (02/18/86)

Your solution of appending a postmark on the message is a variant
of my method (2). This method should have been formulated in
more general terms, to append some kind of trace information
on the message. I prefer to put the postmark in the TO field
for the following reasons:

(a) What you want to stop is not the same message looping back
to the same host. This, in fact, can be perfectly legal in some
cases. What you want to stop is the message looping back to the
same mailing list.

(b) The TO: field is one of the safest field from being munged
by header-munging systems.

Best of course would be to have an additional, special field
in the headers intended for this kind of trace information -
provided that all systems accept and are willing to handle this
trace field in the proper manner.

ucl.ac.uk@BRL.ARPA> (02/19/86)

Counting received lines is simple, and STUPID. How many hops do you
think your message took to reach me here in Wales ? Well, perhaps it
didn't take quite that many, but I certainly wouldn't like to rely on that !

mcb@styx.UUCP (Michael C. Berch) (02/20/86)

Speaking of loop control, we have received FOUR copies of this message
and several others gatewayed to net.mail.headers:

Second of four copies:

> From lognet2!seismo!brl-smoke!smoke!Jacob_Palme_QZ%QZCOM.MAILNET@MIT-MULTICS.ARPA Thu Feb 20 10:12:38 PST 1986
> Relay-Version: version B 2.10.2 8/21/84; site styx.UUCP
> Path: styx!lognet2!seismo!brl-smoke!smoke!Jacob_Palme_QZ%QZCOM.MAILNET@MIT-MULTICS.ARPA
> >From: Jacob_Palme_QZ%QZCOM.MAILNET@MIT-MULTICS.ARPA
> Newsgroups: net.mail.headers
> Subject: Re: Subject: Loop control mechanisms in mailing lists
> Message-ID: <1024@brl-smoke.ARPA>
> Date: 18 Feb 86 01:52:46 GMT
> Date-Received: 19 Feb 86 19:52:10 GMT
> Sender: news@brl-smoke.ARPA
> Lines: 18
> 
> Your solution of appending a postmark on the message is a variant
> of my method (2). This method should have been formulated in
> more general terms, to append some kind of trace information
> on the message. I prefer to put the postmark in the TO field
> for the following reasons:
>
> [remainder deleted...]


Fourth of four copies:

> From lognet2!seismo!brl-smoke!smoke!Jacob_Palme_QZ%QZCOM.MAILNET@MIT-MULTICS.ARPA Thu Feb 20 10:05:45 PST 1986
> Relay-Version: version B 2.10.2 8/21/84; site styx.UUCP
> Path: styx!lognet2!seismo!brl-smoke!smoke!Jacob_Palme_QZ%QZCOM.MAILNET@MIT-MULTICS.ARPA
> >From: Jacob_Palme_QZ%QZCOM.MAILNET@MIT-MULTICS.ARPA
> Newsgroups: net.mail.headers
> Subject: Re: Subject: Loop control mechanisms in mailing lists
> Message-ID: <1026@brl-smoke.ARPA>
> Date: 18 Feb 86 02:34:08 GMT
> Date-Received: 19 Feb 86 19:52:13 GMT
> Sender: news@brl-smoke.ARPA
> Lines: 18
> 
> Your solution of appending a postmark on the message is a variant
> of my method (2). This method should have been formulated in
> more general terms, to append some kind of trace information
> on the message. I prefer to put the postmark in the TO field
> for the following reasons:
> 
> [remainder deleted...]

Note that these have different message-IDs from brl-smoke. 
Since this has occurred before, I assume we can rule out the
possibility of duplicate messages being sent over from the Internet.
Would whomever is doing the gatewaying please look into this?

Michael C. Berch
ARPA: mcb@lll-tis-b.ARPA
UUCP: {akgua,allegra,cbosgd,decwrl,dual,ihnp4,sun}!idi!styx!mcb