At 1:53 PM +0000 1/23/01, Steven Fletcher wrote:
> Hi all,
>
> I believe I've discovered a bug/feature that affects the message UIDL's
> generated from within init_dropinfo(). I have tested this with both versions
> 2.53 and 3.1.2, both configured with --enable-hash-spool=2.
>
> Causes: Messages with identical 'From' separators, Date, Message-ID, Subject
> headers and the first line of all 'received' headers generate identical
> UIDLs. These are *exceptional* circumstances, but are possible. The example
> in the case that I have seen is an email sent to many addresses from a
> yahoo.com webmail account. The recipients all pointed to the same POP3
> maildrop on our server, and Yahoo sent each message on a separate connection
> (i.e., the [full] received header generated by our copy of sendmail was
> unique, but the first line of the said headers were all the same. All the
> messages arrived at our mailserver on the same second.
In 3.x, UIDs have an extra random component, so 100% identical
messages will get different UIDs. The only exception is if NO_STATUS
is set. This prevents Qpopper from adding 'X-UIDL:' headers to the
spool, forcing the UIDs to be recalculated each time. In this case
there can't be a random component, since the UIDs must be identical
each time.
>
> Problem: The MD5 generation only looks at the above lines(?). It would be
> useful to reference the entire Received: header in the event that it is a
> multi-line header. As far as I am aware, it is standard practice to split a
> header that spans multiple lines by preceding the following line(s) with a
> \t - perhaps it's worth having a function that is able to return fully such
> headers so that they can be put through the digest completely.
Thanks for the suggestion.
>
> Anyway, feel free to let me know what you lot think :).