It is only basic, but works in this way for other platforms.
It works because MUAs are able to reconstruct threads originating from mails
they don't know about (unknown Message-ID).

This has some drawbacks:
* MUAs might show the missing start of the thread. As a normal user of a
  package never got *all* notifications of a package anyways it only reflects
  the reality
* Missing notifications go unnoticed. This is no regression so it should be
  fine

Those could be fixed by including all previous comments in 'References:',
which would require to have predictable 'Message-ID:' for notification mails.
This would require more code and more database accesses at runtime.

Could also be used for out of date notifications.
---
 web/lib/pkgbasefuncs.inc.php | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/web/lib/pkgbasefuncs.inc.php b/web/lib/pkgbasefuncs.inc.php
index 4d05b94..34ff302 100644
--- a/web/lib/pkgbasefuncs.inc.php
+++ b/web/lib/pkgbasefuncs.inc.php
@@ -133,11 +133,14 @@ function pkgbase_add_comment($base_id, $uid, $comment) {
                . "\n\n---\nIf you no longer wish to receive notifications 
about this package, please go the the above package page and click the UnNotify 
button.";
                $body = wordwrap($body, 70);
                $bcc = implode(', ', $bcc);
+               $thread_id = "<pkg-notifications-" . $row['Name'] . 
"@aur.archlinux.org>";
                $headers = "MIME-Version: 1.0\r\n" .
                           "Content-type: text/plain; charset=UTF-8\r\n" .
                           "Bcc: $bcc\r\n" .
                           "Reply-to: [email protected]\r\n" .
                           "From: [email protected]\r\n" .
+                          "In-Reply-To: $thread_id\r\n" .
+                          "References: $thread_id\r\n" .
                           "X-Mailer: AUR";
                @mail('undisclosed-recipients: ;', "AUR Comment for " . 
$row['Name'], $body, $headers);
        }
-- 
1.9.3

Reply via email to