著者: David Woodhouse 日付: To: Ralf G. R. Bergs CC: exim-users ML 題目: Re: [Exim] Force new (valid) Exim-style message id
fromsystemfilter?
On Wed, 2003-02-12 at 09:56, Ralf G. R. Bergs wrote: > >Using an RFC1918 IP literal wouldn't be too clever, I suppose -- but
> >private hostnames are permitted, as long as they're unique. Isn't your
>
> I think that private hostnames ARE NOT permitted. As message ID needs to have
> a FQDN as the part after the "@," and a private hostname doesn't qualify as a
> FQDN (because it is, by definition, not unique.)
>
> >own internal domain nomenclature sufficiently unique? Is there really a
> >chance of someone else naming their internal machines 'ralf.wg', etc.?
>
> Absolutely.
RFC2822 §3.6.4:
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 "@", and
put a combination of the current absolute date and time along with
some other currently unique (perhaps sequential) identifier available
on the system (for example, a process id number) on the left hand
side. Using a date on the left hand side and a domain name or domain
literal on the right hand side makes it possible to guarantee
uniqueness since no two hosts use the same domain name or IP address
at the same time. Though other algorithms will work, it is
RECOMMENDED that the right hand side contain some domain identifier
(either of the host itself or otherwise) such that the generator of
the message identifier can guarantee the uniqueness of the left hand
side within the scope of that domain.
So you're probably right in saying it's invalid because you can't
_guarantee_ that nobody else will use it, and you MUST do that if you
include a Message-ID.
OTOH you can't actually _guarantee_ that nobody else is going to use
@ADSL-Bergs.RZ.RWTH-Aachen.DE for their message-ids either, although you
might reasonably expect them not to. So technically, you're screwed
either way -- since RFC2822 says that inclusion of a Message-ID is only
a 'SHOULD' not a 'MUST', I suppose the logical conclusion is that you
MUST NOT include a Message-ID in any mail? :)
To be realistic, the respective probabilities of someone else out there
using _either_ '@ADSL-Bergs.RZ.RWTH-Aachen.DE' or '@ralf.wq', although
non-equal, are _both_ sufficiently small that they're acceptable in
practice. Especially when combined with the already vanishingly-small
chances of the left-hand-side matching.