Next Previous Contents

12. Customizing digests.

12.1 Setting up a digest list.

Digests are integrated with normal ezmlm lists if you use ezmlm-idx>=0.30. Just add the ezmlm-make(1) ``-d'' switch to your list setup. To add digests to an existing list created with ezmlm-idx>=0.23 use:

        % ezmlm-make -+d DIR
For ezmlm-0.53 or older lists, you just need to re-specify also other switches and the other ezmlm-make(1) arguments.

12.2 Generating daily digests.

The easiest way to generate trigger messages is to use crond(8) and execute ezmlm-get(1) daily. To do this, create the list with:

        ezmlm-make -d dir dot local host
and add a line to your crontab file:
        30 04 * * * ezmlm-get dir
and execute crontab(1). This will generate a digest each day at 04:30 am. In addition, a digest will be generated at any time when the latest post makes it more than 30 messages or more than 64 kbytes of message body since the latest digest. If you do not want these extra digests, edit DIR/editor and remove the ezmlm-tstdig(1) and ezmlm-get(1) lines.

If you do not need the digests to go out at a particular time, use the standard setup, but edit DIR/editor to put ``-t 24'' on the ezmlm-tstdig(1) line instead of the default ``-t 48'' for 48 hours. This is even easier. You can modify all parameters by editing ezmlmrc or by using the ezmlm-make(1) ``-4'' argument when creating/editing the list. This is described in the ezmlm-make(1) man page, and the options etc, are described in the ezmlm-tstdig(1) man page.

12.3 Generating the first digest.

If you want the first digest to start with issue 1 and the first message in your archive, no special action is required.

If you want the first digest to start at message 123 and you have shell access, put '122' into DIR/dignum.

If you want the next digest to start at message 456, you can always edit DIR/dignum to contain '455'. If you want the next digest to be named issue 678, put '677' into DIR/digissue.

12.4 Adding standard administrative information to digests.

The text in DIR/text/digest is copied into the ``Administrivia'' section of the digest. This information can be customized on a system-wide basis by editing /etc/ezmlmrc, on a user-wide basis by editing ~/.ezmlmrc, or for the list by directly editing the DIR/text/digest file, or by a remote administrator by editing the file via e-mail, if the list has been set up using the ezmlm-make(1) ``-nr'' switches (see How text file editing works).

12.5 Controlling the digest format.

You can control the default format that ezmlm-get(1) uses for its output by using the ``-f x'' switch. For individual digests triggered by mail or other archive access, add a format specifier after the digestcode:

For example:
where ``x'' is ``r'' for rfc1153 format, ``m'' (default) for MIME multipart/digest with a subset of headers, ``v'' for virgin MIME multipart/digest, i.e. with all headers retained from the archive, ``n'' produces format similar to ``v'', without threading and with messages in numerical order. The ``x'' format is identical to the default ``m'' format, but the digest content-type is ``multipart/alternative'' rather than ``multipart/digest''. This helps with a pine bug if you are using quoted-printable/base64 encoding of ezmlm messages.

With digests triggered directly from crond(8), just use the ``-f'' format specifier:

        ezmlm-get -fx DIR
The same switch can also be used for standard digest triggering from DIR/editor. Just add the ``-fx'' switch to the ezmlm-get(1) command line there. Edit ~/ezmlmrc to assure that such customizations will be used for future list creations/edits.

12.6 Customizing bounce handling.

The time out for bounce messages is normally 11.6 days. This means that a bad address will take longer that 3 weeks to be removed. Usually, this delay is desirable. After all, it is much worse to remove a subscriber just because the address had temporary problems that to send a few extra messages and receive a few extra bounces.

However, for large lists, bounce handling can consume a considerable amount of resources. To decrease the load, remove all ezmlm-warn(1) lines from the DIR/editor, and DIR/manager files. Instead, execute:

/path/ezmlm-warn DIR
/path/ezmlm-warn -d DIR
daily during off-peak hours via a cron script. The second line can be omitted if you are not using the digest capability of the list.

This should not be necessary for ezmlm-idx>=0.32. That version adds much more efficient bounce handling, making this type of modification usable only for extremely large lists with many bad addresses (unusual for ezmlm lists) and for hosts that are working near the limit of their capacity (where shifting some qmail load to off-peak hours is worth the effort).

In addition, you may want to reduce the time out for bounces from 11.6 to a lower number of days, e.g. 5. To do so, add ``-t 5'' to the ezmlm-warn(1) command line.

If you start with a list from a list manager that does not have bounce handling, chances are that you have many bad addresses in your list. You can always execute:

/path/ezmlm-warn -t0 DIR
/path/ezmlm-warn -d -t0 DIR
to move bounce handling one step forward per execution. Users whose mail has bounced will be sent a warning. Users for whom the warning message has bounced will be sent a probe.

Next Previous Contents