s-o-1036 June 1994
[< Prev]
[TOC] [ Next >]
10.3. Message ID Mapping
This section, like the previous one, is phrased in terms of
mail being gatewayed into news, but most of the discussion
should be more generally applicable.
A particularly sticky problem of gatewaying mail into news
is supplying legal news message IDs. Note, in particular,
that not all MAIL message IDs are legal in news; the news
syntax (specified in section 5.3, with related material in
5.2) is more restrictive. Generating a fully-conforming
news article from a mail message may require transforming
INTERNET DRAFT to be NEWS sec. 10.3
the message ID somewhat.
Generation and transformation of message IDs assumes partic-
ular importance if a given mailing list (or whatever) is
being handled by more than one gateway. It is highly desir-
able that the same article contents not appear twice in the
same newsgroup, which requires that they receive the same
message ID from all gateways. Gateways SHOULD use the fol-
lowing algorithm (possibly modified by the later discussion
of gatewaying into more than one newsgroup) unless local
considerations dictate another:
1. Separate message ID from surroundings, if necessary.
A plausible method for this is to start at the first
"<", end at the next ">", and reject the message if
no ">" is found or a second "<" is seen before the
">". Also reject the message if the message ID con-
tains no "@" or more than one "@", or if it contains
no ".". Also reject the message if the message ID
contains non-ASCII characters, ASCII control charac-
ters, or white space.
NOTE: Any legitimate domain will include at
least one ".". RFC 822 section 6.2.2 forbids
white space in this context when passing mail
on to non-MAIL software.
2. Delete the leading "<" and trailing ">". Separate
message ID into local part and domain at the "@".
3. In both components, transliterate leading dots
(".", ASCII 46), trailing dots, and dots after the
first in sequences of two or more consecutive
dots, into underscores (ASCII 95).
4. In both components, transliterate disallowed char-
acters other than dots (see the definition of
<unquoted-char> in section 5.2) to underscores
(ASCII 95).
5. Form the message ID as
"<" local-part "@" domain ">"
NOTE: This algorithm is approximately that of Rich
Salz's successful gatewaying package.
Despite the desire to keep message IDs consistent across
multiple gateways, there is also a more subtle issue that
can require a different approach. If the same articles are
being gatewayed into more than one newsgroup, and it is not
possible to arrange that all gateways gateway them to the
same cross-posted set of newsgroups, then the message IDs in
INTERNET DRAFT to be NEWS sec. 10.3
the different newsgroups MUST be DIFFERENT.
NOTE: Otherwise, arrival of an article in one
newsgroup will prevent it from appearing in
another, and which newsgroup a particular article
appears in will be an accident of which direction
it arrives from first. It is very difficult to
maintain a coherent discussion when each partici-
pant sees a randomly-selected 50% of the traffic.
The fundamental problem here is that the basic
assumption behind message IDs is being violated:
the gateways are assigning the same message ID to
articles that differ in an important respect
(Newsgroups header).
In such cases, it is suggested that the newsgroup name, or
an agreed-on abbreviation thereof, be prepended to the local
part of the message ID (with a separating ".") by the gate-
way. This will ensure that multiple gateways generate the
same message ID, while also ensuring that different news-
groups can be read independently.
NOTE: It is preferable to have the gateway(s)
cross-post the article, avoiding the issue alto-
gether, but this may not be feasible, especially
if one newsgroup is widespread and the other is
purely local.
[< Prev]
[TOC] [ Next >]
#Diff to first older