Mariachi - all dancing mail archive generator




An AppConfig object containing the current configuration. See mariachi for details of the configurable items.


The current set of messages


The rootset of threaded messages



Used internally by the _bench method


All of these are instance methods, unless stated.

->new( %initial_values )

your general class-method constructor


populate messages from input


remove duplicates from messages


some messages have been near mail2news gateways, which means that some message ids in the references and in-reply-to headers get munged like so: <$group/$message_id>

fix this in messages


populate rootset with an Email::Thread::Containers created from messages


order rootset by date


(in)sanity test - check everything in messages is reachable when walking rootset


run a strand through all messages - wander over threader setting the Message ->next and ->prev links


wander over rootset reparenting subthreads that are considered too deep


copy files into the output dir


generate_pages( $template, $filename, %data )





render thread tree into the directory of output


do all the right steps


This code was written as part of the Siesta project and includes code from:

Richard Clamp <>

Simon Wistow <>

Tom Insam <>

Mark Fowler <>

More information about the Siesta project can be found online at


Copyright 2003 The Siesta Project

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.