I don't use the submission port on either server, just port 25, but 5.9
sends a message-id and 6.0 does not. What does "/if necessary/" mean for the
5.9 server? What is the deciding factor to make the header necessary? I
would like the v6.0 server to send a message-id too, how do I make
whatever-it-is necessary on this server? Or was the "if necessary" feature
removed in 6.0 and replaced with "...submit port"?
The change in 6.0 brings smtpd into compliance with the SMTP
specification. RFC 5321 section 6.4 contains the following text:
The following changes to a message being processed MAY be applied
when necessary by an originating SMTP server, or one used as the
target of SMTP as an initial posting (message submission) protocol:
o Addition of a message-id field when none appears
o Addition of a date, time, or time zone when none appears
o Correction of addresses to proper FQDN format
The less information the server has about the client, the less likely
these changes are to be correct and the more caution and conservatism
should be applied when considering whether or not to perform fixes
and how. These changes MUST NOT be applied by an SMTP server that
provides an intermediate relay function.
Note the MUST NOT in the final paragraph. When a message is received on
port 25, smtpd really has no way of knowing if it is the "originating"
server, therefore it can't add the message ID. If it receives the message
on port 587 (the submission service), it is - by definition - the
originating SMTP server, and is allowed to add the message ID if it's
missing.
--lyndon