procmail
[Top] [All Lists]

Re: Message Ids

2003-01-04 11:11:46
On Sat, 4 Jan 2003, Paul Chvostek wrote:

Message-ID: <p05300968ba3b75bdc3cd(_at_)[192(_dot_)168(_dot_)1(_dot_)11]>

The regex is right, the MTAs are wrong, brackets are evil, and the
example Message-ID does in fact break the rules for multiple reasons.

As http://www.faqs.org/rfcs/rfc2822.html is my witness, section 3.2.4
defines "atext" as any character except controls, space and specials.  
Section 3.2.1 defines "specials", and sure 'nuff, square brackets are
included.  And section 3.6.4 provides the various definitions that put
it all together.

3.6.4 says:

msg-id          =       [CFWS] "<" id-left "@" id-right ">" [CFWS]

id-left         =       dot-atom-text / no-fold-quote / obs-id-left

id-right        =       dot-atom-text / no-fold-literal / obs-id-right


Please note that "obs-id-right" is defined (in section 4.5.4) as "domain"
which is in turn defined to include "domain-literal" which does include
bracketed IP addresses.  RFC2822-compliant implementations are therefore
required to accept, but not to generate, that format.

No, the example violates RFC because of the brackets.  The IP address is
perfectly acceptable in terms of format alone ... but the RFC only says
that the "id-right" portion of the Message-ID is MUST be a globally
unique identifier for the message

No, you're misreading.  The ENTIRE Message-ID MUST be globally unique:

   The message identifier (msg-id) itself MUST be a globally unique
   identifier for a message.  The generator of the message identifier
   MUST guarantee that the msg-id is unique.  There are several
   algorithms that can be used to accomplish this.  Since the msg-id has
   a similar syntax to angle-addr (identical except that comments and
   folding white space are not allowed), a good method is to put the
   domain name (or a domain literal IP address) of the host on which the
   message identifier was created on the right hand side of the "@" ...

If the id-left is "sufficiently unique" then the id-right is irrelevant.
The problem, of course, is guaranteeing that the left side is unique when
you have no information about what other generators are doing.


_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail

<Prev in Thread] Current Thread [Next in Thread>