Konnichiwa, Alexey Rusakov, вы писали:
On 29.09.2005 14:08, Arioch wrote:
Alexey Rusakov пишет:
Неужели так сложно пихать в каждое письмо линк неважно куда,
На Гугл? На Яндекс? На Луну?
Толку от линка неважно-куда ?
Я о технической реализуемости. Просто, имхо, не должно быть сложно
состряпать линк из некоторого шаблона, подставив туда MessageID.
не зная о существовании этого линка?
Я не уверен, что почтовый сервер может надежно угадать, под каким
номером позже совсем другая прога его в архив положит.
Здрасте, а MessageID совсем другая прога зачитать не в состоянии? И
использовать его в качестве первичного ключа.
Подобный костыль подойдет?
Для каждого письма из html архива(по абсолютному пути) создается симлинк
в /%(archive_list)s/msgid/%(Message-ID этого письма)s.html.
Также добавляет переменые msgid (Message-ID текущего письма) и
web_archive (url архива списка) в словарь для подписей mailman'a.
Т.е. если добавить в подпись 'Адрес этого сообщения в Web:
%(web_archive)smsgid%(cgiext)s/%(msgid)s.html' то все будет нормально :-\
Правда не знаю в каком виде это в дайджесах писать :\
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', '<[EMAIL PROTECTED]>').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?
_______________________________________________
smoke-room mailing list
[email protected]
https://lists.altlinux.ru/mailman/listinfo/smoke-room