[Mailman-Users] Indexing mail right after delivery
Mark Sapiro
mark at msapiro.net
Thu Mar 4 15:49:54 CET 2010
On 3/4/2010 4:23 AM, Cedric Jeanneret wrote:
>
> I think I found what's the problem is : the script works now, but as
> I write my own archiver, it doesn't do the pipermail part (i.e.
> update mails in archive)... I thought that this code :
>
> mlist = MailList.MailList(maillist, lock=False)
> msg = email.message_from_file(sys.stdin, Message.Message)
> f = StringIO(str(sys.stdin))
> h = HyperArch.HyperArchive(mlist)
> h.processUnixMailbox(f)
> f.close()
>
> did all, but after reading a bit of code, it doesn't exactly. It
> saves to .mbox file, right ?
No. It doesn't save to the .mbox file. If you look at the ArchiveMail()
method in Mailman/Archivers/Archiver.py. it first saves to the .mbox by
doing
if mm_cfg.ARCHIVE_TO_MBOX in (1, 2):
self.__archive_to_mbox(msg)
Then it either calls the external archiver or executes essentially the
above to archive the mail in the pipermail archive.
What you are missing is
h.close()
and that's why it doesn't work.
> I tried to find where it does the pipermail stuff, but it's a bit
> complicated [I'm not so at ease with Python].
Yes, the archiver is very convoluted because classes are subclassed and
methods overridden all over. Don't feel bad. I've been looking at it for
years and still only barely understand it.
--
Mark Sapiro <mark at msapiro.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
More information about the Mailman-Users
mailing list