diff -ur /tmp/mailman/Mailman/Archiver/HyperArch.py /usr/share/mailman/Mailman/Archiver/HyperArch.py --- /tmp/mailman/Mailman/Archiver/HyperArch.py 2005-05-13 15:35:37 +0400 +++ /usr/share/mailman/Mailman/Archiver/HyperArch.py 2005-10-10 16:48:56 +0400 @@ -1087,6 +1087,12 @@ f.write(article.as_html()) f.close() + if not os.path.exists(self.basedir + '/msgid/'): + os.makedirs(self.basedir + '/msgid/', mode=0775) + path_symlink = '%s/msgid/%s.html' % (self.basedir, article.msgid) + if not os.path.exists(path_symlink): + os.symlink(path, path_symlink) + # Write the text article to the text archive. path = os.path.join(self.basedir, "%s.txt" % index) omask = os.umask(002) diff -ur /tmp/mailman/Mailman/Gui/Digest.py /usr/share/mailman/Mailman/Gui/Digest.py --- /tmp/mailman/Mailman/Gui/Digest.py 2002-02-27 03:04:51 +0300 +++ /usr/share/mailman/Mailman/Gui/Digest.py 2005-10-10 19:24:51 +0400 @@ -27,6 +27,7 @@ # to this. ALLOWEDS = ('real_name', 'list_name', 'host_name', 'web_page_url', 'description', 'info', 'cgiext', '_internal_name', + 'msgid', 'web_archive', ) diff -ur /tmp/mailman/Mailman/Handlers/Decorate.py /usr/share/mailman/Mailman/Handlers/Decorate.py --- /tmp/mailman/Mailman/Handlers/Decorate.py 2005-05-13 06:38:17 +0400 +++ /usr/share/mailman/Mailman/Handlers/Decorate.py 2005-10-10 19:38:52 +0400 @@ -39,7 +39,7 @@ # Digests and Mailman-craft messages should not get additional headers if msgdata.get('isdigest') or msgdata.get('nodecorate'): return - d = {} + d = {'msgid': msg.get('Message-Id', '<01231@local>').strip()[1:-1]} if msgdata.get('personalize'): # Calculate the extra personalization dictionary. Note that the # length of the recips list better be exactly 1. @@ -203,6 +203,7 @@ 'description' : mlist.description, 'info' : mlist.info, 'cgiext' : mm_cfg.CGIEXT, + 'web_archive' : mlist.GetBaseArchiveURL(), }) d.update(extradict) # Using $-strings?