Fully threaded comment tracking emails using more than two References: headers
Title:
Fully threaded comment tracking emails using more than two References: headers
Area:
comment tracking emails
Summary:
Fully threaded mailreaders use the References: header in the email to build the tree structure of emails, expecting to find *all* direct ancestor messages' message-ids in the header. Currently comment notification emails only include up to two message-ids in the References: header -- one for the post, one for the top comment in the thread -- preventing the actual tree structure from being built by the mailreader. If all available parent-comment-of-parent-comment message IDs are included, a correct tree structure will be available in the mailreader.
Description:
I tracked a large comment meme and sent it to a fully threaded mailreader, only to find that the tree structure of the comments was not preserved. Threaded mailreaders use the References: header to build the tree, and all direct ancestor comments of the comment in question should be included. Currently in the email the only message-ids included in the References: header are for the post and the top-level comment. Result in the mailreader: chaos (due to the large size of the comment threads). Solution: include more references (all parent and parent-of-parent comments) in the References: header.
This suggestion:
Should be implemented as-is.
10 (32.3%)
Should be implemented with changes. (please comment)
0 (0.0%)
Shouldn't be implemented.
0 (0.0%)
(I have no opinion)
20 (64.5%)
(Other: please comment)
1 (3.2%)

no subject
I believe the reason we don't do this is because there's a restriction in how long that header can be for email and part of the reason this was sitting in the queue was that I wanted to research before the discussion could happen. In the interests of getting the queue cleaned out I'm posting without that research, but if someone knows more about mail headers (or wants to look into it for me) that would be great!
no subject
So I think that at *minimum*, we should send references to:
* the entry
* the direct parent
* the top comment in the thread
And perhaps:
* a sensible number of grandparent comments (sensible number to be determined by whom?)
* a sensible number of older-sibling comments
* a sensible number of cousin-thread roots(?)
Looking at it, I see the potential for extra work Dreamwidth-side when sending out comments, if the number of grandparent references aren't trimmed suitably when generating the notification, in super super deep comment threads.
My research journey is below.
Looking through RFC 822, I see:
* 3.4.8. - Folding Long Header Fields
So each header field wants to be 65 characters or fewer, or else "foldable".
* 4.1 indicates (by way of 2.4) that there may be an indefinite number of in-reply-to or references lines.
* 4.6.2 and 4.6.3 indicates that message identifiers for in-reply-to and references must use the msg-id specification format.
HOWEVER, RFC 2822 is the new hotness.
It says, among other things:
998 is for "things break"; 78 is for "this will look ugly on some displays".
http://stackoverflow.com/a/2721849 says there is no total header limit for the header body. The comments detail that they updated their answer after looking at 2822 as well as 822. Nobody has chimed in to name specific implementations that have a particularly restrictive header length limit.
https://technet.microsoft.com/en-us/library/bb124345(v=exchg.160).aspx says that Exchange admins can put a size limit on headers.
The default maximum value for headers (all fields) in a message sent *out* via Exchange 2016 is 256kb, or 262,114 characters. The length limit for an entry on Dreamwidth is 300,000 characters.
https://sourceforge.net/p/assp/wiki/SMTP_Session_Limits/ is an anti-spam SMTP proxy server settings page. I assume this is in bytes. So, 50ish kb.
And, just for fun:
https://www.jwz.org/doc/threading.html
[I need a new icon. BRB...]
no subject
no subject