[ uunet!aros.net!Damian writes: ]
> Where can I go for simple instructions in setting up a digest?
A little further back in the archives... This is all for 1.93 so I don't
know how much applies to 1.94, but I don't think it changed that much.
>Date: Tue, 27 Aug 1996 17:05:19 -0400 (EDT)
>From: Kevin Kelleher <email@example.com>
>Subject: how to set up a digest
My recent exchange with Vince about digests showed me that I didn't
know as much as I thought I did. At the same time, I don't think
that many other people know much about them either. So I read the
code a bit more carefully and prepared the following document.
I'd appreciate feedback on it. I'll put it on my website, and
let you know when it's there. I'm also going to work on a second
part that deals with the infamous five files that can also be used
for configuring digests. Anyway, here's what I have so far:
HOW DIGESTS WORK
Digest work this way: Incoming messages are stored in a work
directory. When the digest is built, these individual messages
are put together into a single file. This file (the digest) is
stored in an archive directory and mailed to the subscribers of
Usually a digest is associated with an ordinary mj list, although
this is not a necessary condition. The name of the digest is
usually the ordinary listname with the addition of "-digest";
this too is a convention, albeit a useful one.
A number of events can cause a digest to be built. When the
sum of the sizes of the incoming messages passes the digest's
byte limit (this is a configurable variable), the digest is
automatically built and sent.
A cron command to majordomo can also build a digest, and is
the best way to ensure that digests are sent with regularity.
HOW DO I SET UP A DIGEST?
For the sake of example, let us say that we want to make a
digest for an existing mj list called "banjo". The digest
will be called "banjo-digest".
1. You must create a working directory and an archive directory
for the digest.
In majordomo.cf, there are three variables that are significant to
all digests: $digest_work_dir and $filedir and $filedir_suffix.
The first and second, $digest_work_dir and $filedir, are directories
and must already exist. Majordomo will not create them. Some example
$digest_work_dir = "/usr/local/mail/digest";
$filedir = "/usr/local/mail/files";
$filedir_suffix = ".archive";
"$digest_work_dir" is the working directory, where incoming messages
are held for all digests. "$filedir" is the main archive directory
for all lists.
You must create a working directory and an archive directory for
each list. In our case, these will be:
In other words, they have the form "$digest_work_dir/$list" and
2. You must create a list for the digest.
Create the files for the list banjo-digest: banjo-digest (to hold
the subscribers' addresses), banjo-digest.info (information about
the list and welcome message), and banjo-digest.config.
You don't need to change anything in the ordinary list's configuration.
Even though there are variables like "digest_name" in banjo.config,
NONE of these variables are used. All the variables you need to
set are in the file banjo-digest.config.
These are the variables that affect the digest:
digest_issue = 1
digest_name = Banjo Digest
digest_volume = 1
maxlength = 40000
message_footer << END
message_fronter << END
Other digest variables (digest_archive, etc.) should NOT be touched!
The "maxlength" variable is the size limit for digests. If the
size of an incoming message causes the total size of undigested
messages to go over the maxlength, a digest is automatically
created and sent.
The digest_volume and digest_issue usually begin at 1. Each issue
of the digest begins with a line showing the digest_name,
the date, the volume and number, for example:
Banjo Digest Tuesday, 20 August 1996 Volume 01 : Number 011
Next, after a blank line, will appear whatever you have written in
the message_fronter. If you want to have blank lines in your text,
you need to insert a '-' as the first and only character on the line.
To have whitespace at the beginning of a line, you need to begin
the line with a '-' in front of the whitespace to be preserved.
message_fronter << END
In this issue:
See the end of the digest for information on subscribing to banjo
or banjo-digest mailing lists and how to retrieve back issues.
The keyword "_SUBJECTS_" is expanded to all of the subject lines
from the emails included in the digest.
Likewise, any text inserted in message_footer will be placed at
the end of the digest. Some other expansion tokens that can be
used in both message_fronter and message_footer are: $LIST - the
name of the current list, $SENDER - the sender (as seen on the
>From line), and $VERSION - the current version of majordomo.
3. You must create some aliases.
First, you must add to the banjo-outgoing alias:
and then you will need the banjo-digest aliases:
banjo-digest-digestify: "|/path/to/wrapper digest -r -C -l banjo-digest \
Note that anyone who posts to "banjo-digest" will have their mail routed
to the right place anyway.
At this point your digest is ready. It will work, although digests
will only be created when the size limit is hit.
4. Making the digests run more regularly.
You can send a message to majordomo to cause a digest to be created
mkdigest listname-digest [digest-password]
In our case:
mkdigest banjo-digest strums
If there are any messages in the work directory, a digest will be
created and sent.
Probably you would like the digest to run more automatically.
To do this, you need to insert this command into a cron table:
echo mkdigest listname-digest [digest-password] | mail firstname.lastname@example.org
(Of course, you have to put the real listname and password (if any)
and the correct address for majordomo.)
DO I HAVE TO HAVE TWO LISTS? I HAVE A LIST THAT I WOULD LIKE
TO MAKE AVAILABLE ONLY IN DIGEST FORMAT.
The only thing that will be different from the setup described
above is in the aliases file:
banjo-digest: "|/path/to/wrapper digest -r -C -l banjo-digest \
You don't need a "digestify" alias in this case.
I've converted my "how to make a digest" guide into html at:
Kevin Kelleher <email@example.com>
(feedback, suggestions, questions welcome)