On October 6, 1999 at 14:46, someone wrote:
Check the message-ids. If the messages contain ids that match ids
already in the archive, MHonArc will skip the messages.
Out of curiosity, what happens if the Message-Id: doesn't exist? Does
it ignore the test?
Older versions did, but the latest releases may not.
When MHonArc encounters a message w/o an ID, it internally creates its
own ID. If the Digest::MD5 module is available, it creates the ID
based on the MD5 sum of the message *header*. The reason it is only
the header is for efficiency reasons. The message body is not read
until read_mail_header() returns and it returns with a status that
states the message should be added. Including the body as part
of the MD5 sum would provide better chance of uniqeness, but would
require code restructuring (and a performance penalty) for questionable
Since the ID uses the MD5 sum as a base, if the same header is
encountered again, MHonArc will tag it as already in the archive
and skip it.
If the Digest::MD5 module is not available, it still creates
a bogus ID, but it will not be able to check for duplicates. If
the message is passed to mhonarc again, MHonArc will add it again.
I have been considering a resource to disable Digest::MD5 usage
for non-ID messages since it is possible for two different messages
to be tagged as the same if the message header data is exactly
the same (but the body data is different). However, in the
real world, I do not know is this case will ever happen.