Story is simple: one user creates a new discussion, and system sends out email notification to other users about that. When these users reply to a notification, their replies should be properly routed as comments to the particular discussion.
When system sends out email notification, it includes routing code in the subject. For example, subject of a notification may look like this: ‘Discussion “Lets Talk” has been started {123}‘. Since all email clients use Re: ORIGINAL SUBJECT we get {123} back as part of the subject, parse it and know where to put the comment.
We have this working already (had it for years actually), but current implementation looks a bit dirty (especially when codes become longer) so we would like to explore alternatives if there are any. Is there are a more elegant way to approach this, that works reliably across most email clients? Email header that we might be missing? Something similar?
Thanks so much
Since you didn’t mention it I’m not sure if you looked into this:
There is a field in the email header called
In-Reply-Towhich should contain the message id(s) of the email(s) that mail is replying to and one nameReferenceswhich should specify a thread this mail belongs to:According to the rfc the
In-Reply-Tofield should contain the “parent”-message’sMessage-Idwhile theReferencesfield will quote the parent-message’sReferencesfield.The problem with this fields is that there is no guarantee that there is something useful in them because they are not required to be filled correctly for mail delivery so some mail clients might not fill them correctly or maybe not even at all.
I found this article about building a threading algorithm using the In-Reply-To field and claiming to be robust against garbage and malicious input in these fields.