Mj2 is now generating MIME digests and 'index' digests on demand; you can
request a digest of messages from a certain day or request a list of
messages to be sent. This seems to work pretty well.
Now I'm working on the automatic triggering stuff. This is basically what
was hashed out here some time ago and has been in the TODO list, but I've
added an important bit so I'll toss it out for discussion.
There are six variables involved in deciding when to push out a digest and
two variables involved in choosing what messages to put in the digests.
Most of them can be ignored if you don't want fine control but I think all
are useful in some way. They are:
The allowable times for digest generation.
Digests will not be generated except during times of the list owner's
The maximum allowable age of a waiting message.
A digest will always be generated if a message in the queue gets stale.
The minimum number of messages in a digest.
The minimum size (in bytes) of a digest.
Digests don't get generated unless there are enough messages.
The minimum allowable age of a waiting message.
Digests aren't generated while discussion is active. This is for low
traffic lists with periodic bursts of discussion, to keep a digest from
spawning in the middle of an exchange.
The minimum separation between digests.
Digests aren't generated too close together.
The maximum number of messages in a digest.
The maximum size (in bytes) of a digest.
When a digest is generated, it will never exceed these limits unless a
single message is over the byte limit.
Time specification is flexible: by hour of day, day of week, or day of
month, and ranges of each. The reason for this is to not rely on external
crontabs to kick off digests, since many list owners may not have the
luxury. Instead we have the hourly trigger, although I'll eventually
implement the trusty 'mkdigest' command so the owner can force a digest
Note that some of these can conflict; some limits have precedence over
others. I have not yet decided on the precedence of the first two, but I'm
leaning towards the listed order (so digests are _never_ generated outside
of allowed times). For example, if a message gets stale, a digest will be
pushed even if it doesn't meet the minimum size criterion.
One thing that folks had wanted was some way to group messages by subject
or thread in the digest, not only so that they cluster together in the
index but also to put messages in digests out of order to try to keep
threads together. The digest builder has access to the references
information and the subjects, so this could possibly be done. If anyone
wants to work on it, let me know.