digest - receive a file for a digest, or create and mail a digest
digest -r|m -C -l majordomo-listname recipient
digest -r|m [-c configuration-file]
Provided with distributions of Majordomo.
The digest script is a perl script which automates the
management of digests of electronic mail. It can be
run in a standalone configuration or as part of Majordomo.
It requires two directories: a work directory and an
archive directory. Incoming e-mail messages are stored
in the work directory. Digests are created and stored
in the archive directory.
When invoked with the -r option, the digest script reads
the incoming e-mail message from standard input and stores
the file in the work directory. These files are given
numerical names starting with "001" and are numbered in
order of arrival. Each time that a file is added to the
directory, digest checks the total size of the files in bytes.
If the sum exceeds the digest's size limit (a configured value),
a digest is created and mailed.
When invoked with the -m option, the digest script will
create and mail a digest, if there are any numbered files
in the work directory.
It should be noted that digest needs a configuration file
to define all of its operating parameters. If no such
file is specified, digest will use the $HOME/.digestrc file.
Receive an email message via standard input
and place the file into the working directory.
If the total size (in bytes) of files in the
working directory exceeds the digest's size limit,
create and mail a digest.
If there are any numbered files in the working
directory, create and mail a digest. Store the
digest in the archive directory.
Use the parameters defined in configuration-file.
Use Majordomo configuration values: read the configuration
file for Majordomo (majordomo.cf) and for the Majordomo
list specified by the -l option. If both -C and -c options
are specified (not recommended) the -C option will be used.
This option is ignored if used without the -C option.
Specifies the Majordomo e-mail list.
Email recipient of the digest. This operand is ignored if used
without the -C option. It specifies one of the system mail
aliases created for the Majordomo list named in the -l option.
MAJORDOMO DIGEST CONFIGURATION
When used as a part of Majordomo, digest takes these parameters
$listdir - the location of the mailing lists
$digest_work_dir - parent directory for the digests' work directories
$filedir - parent directory for archive directories
$filedir_suffix - an optional identifier (may be the null string)
Incoming messages for $listname-digest will be held
Digests will be stored in $filedir/$listname-digest$filedir_suffix.
The list's configuration file will be $listdir/$listname-digest.config.
Examples of these values are given in EXAMPLES, below.
The list's configuration file contains several digest parameters that
are not yet implemented and/or should NOT be changed from their defaults
(blank): digest_archive, digest_rm_footer, digest_rm_fronter,
The parameters which specifically deal with digest creation
and maintenance are:
digest_name - the title of the digest
digest_volume - volume number
digest_issue - issue number
maxlength - maximum number of characters in a digest
message_fronter - text prepended to the digest
message_footer - text appended to the digest
The last three parameters are also used in the configuration of
an ordinary (non-digest) Majordomo list.
Each digest begins with the a line containing the digest_name,
current date, digest_volume and digest_issue. The digest script
will update the issue number in the configuration file.
A blank line follows, and then the text from the message_fronter,
if any. The message fronter may contain the _SUBJECT_ token,
which will be replaced by the subject lines from the messages
in the digest.
The text in the message_footer, if any, will be appended to the
To embed a blank line in the message_footer or message_fronter,
put a '-' as the first and ONLY character on the line. To
preserve whitespace at the beginning of a line, put a '-'
on the line before the whitespace to be preserved. To put
a literal '-' at the beginning of a line, double it.
Both message_footer and message_fronter may also use the tokens
$LIST, $SENDER, and $VERSION, which will be expanded to,
respectively: the name of the current list, the sender as taken
from the from line, and the current version of majordomo.
Examples of the aliases usually used with the digest are
given in EXAMPLES, below.
The list owner can prompt Majordomo to build a digest by
sending the command "mkdigest digest-name [digest-password]"
to majordomo either via email or from cron. The cron
command has the format:
echo mkdigest digest-name [digest-password] | mail firstname.lastname@example.org
STANDALONE DIGEST CONFIGURATION
The Majordomo distribution comes with a "digest" subdirectory.
The sample configuration file is called firewalls-digest.cf.
A file in this format must be used if digest is invoked in
If no configuration file is specified when digest is invoked,
it looks for a file named $HOME/.digestrc that must be in the
same format as the example file.
The configuration file defines the email addresses of the
sender and recipient of the digest. It also locates the
work and archive directories, the digest's size limit,
and the names of the files that contain the digest's volume,
number, header and footer.
The easiest way to configure a standalone digest is to copy
the five files (firewalls-digest.*) and edit them to taste.
Incoming mail is piped to digest with the -r option.
This can be done from some mail-reading programs, through
the command line, or via mail aliases similar to those
found in EXAMPLES, below.
1. Example values from /etc/majordomo.cf:
$listdir = "/usr/local/mail/lists";
$filedir = "$listdir";
If our digest's name is banjo-digest, the work directory will
be /usr/local/mail/digest/banjo-digest; the archive directory
will be /usr/local/mail/lists/banjo-digest.archive. Note
that these are names of directories, not files.
2. Typical aliases for Majordomo digests:
Usually a Majordomo digest is associated to a regular (non-digest)
list. The digest's name is the regular listname plus "-digest".
The list "banjo" will have the digest "banjo-digest".
banjo-digest-digestify: "|/usr/majordomo/wrapper digest -r -C -l banjo-digest banjo-digest-outgoing"
Note that mail to "banjo-digest" is routed to the regular list.
The "digestify" alias must be added to the regular list's outgoing
The following exit values are returned:
0 Successful completion.
>0 An error occurred.
The digest script was written by Brent Chapman <brent@GreatCircle.COM>.
It is available with distributions of Majordomo via anonymous FTP
from FTP.GreatCircle.COM, in the directory pub/majordomo. This
man page was written by Kevin Kelleher <email@example.com>.