ezmlm-get - handles mailing list archive retrieval and digests
][ -f format
handles archive retrieval and optionally makes and sends out
digests for the mailing list stored in dir
. Subscribers of the digest
list are stored in dir/digest/subscribers/.
The contents of dir/headeradd are added to the header of
is not specified on the command line, ezmlm-get
try to read it from the file dir/digestcode .
is normally invoked from a .qmail(7)
file. It reads a
mail message from its standard input, and a mail envelope from the
, and HOST
to determine where it is invoked. If
is the list local name only, ezmlm-get
assumes it is run
from dir/editor to produce a digest. The digest is
sent directly to the digest list subscribers.
is empty or undefined, ezmlm-get
assumes it is run from
the command line or a script. In this case it behaves as if run from
dir/editor and sends out a digest to the digest
to be of the form
list- action. Here list
is the first
line of dir/outlocal and action
is a request. The
output is sent to the envelope sender.
, and get
. If action
is one of these,
handles the request and sends a reply. If successful, it
exits 99 (ignore remaining .qmail(7)
file entries). If action
not one of these, ezmlm-get
exits 0 (success) to pass the message on to
later handlers, such as ezmlm-manage(1)
ezmlm-dig.digestcode returns a digest of messages received
since the last digest, unless numerical arguments are given.
must be alphanumeric, and match (case-insensitive)
on the ezmlm-get
command line. Otherwise, the request
will be ignored. This is to restrict digest creation. The body of the
requesting message up to the first line starting with '-' is copied into the
section of the digest. This is followed by the contents
of dir/text/digest, if this file exists.
Anyone who can read your dir/manager and
dir /digestcode files, digest-requesting scripts, or mail log
knows the digestcode
and can trigger digests.
copies the TXT_MAILING_LIST
message into a
field in its response. If the incoming message has a
refuses to respond.
also refuses to respond to bounce messages.
If dir/listid exists, ezmlm-get
will assume that the
format is correct and create a ``List-ID:'' header by placing the contents
after the text ``List-ID: ''.
If dir/qmqpservers exists, ezmlm-get will use
to send messages.
If dir/public does not exist, ezmlm-get
archive retrieval attempts, unless the -p
command line switch is used.
Archive retrieval actions can be of the form action[f]
action[f].num or action[f].num_num2,
is the message number for the action or
the range of message numbers for the action.
is an optional format specifier for -get
requests. It is allowed, but ignored for -index
Currently, the following are allowed:
- rfc1153. This is a ``plain'' non-MIME format for dumb clients.
- (Default.) MIME multipart/digest with a subset of ordered headers
sorted. Currently, the following headers are included in the order listed:
Date:, To:, From:, Reply-To:, Cc:, MIME-Version:, Content-Type:,
Message-ID:, and Keywords:. This can be customized with the optional file
dir/digheaders, which should contain the desired
headers up to but not including the colon.
The format is no longer compliant with rfc1153, as the rfc1153 format is
incompatible with rfc2046, with which the format is (should be)
- MIXED: This is the same as the default MIME format, except that the
Content-Type is multipart/mixed. This helps circumnavigate a Pine
bug: when the digest is content-transfer-encoded, Pine will refuse to
display the initial text/plain part of a multipart/digest message,
but display the same part of a multipart/mixed message. Some MUAs
for some strange reason treat the two multipart formats differently. In
some cases, ``x'' works better than ``m''.
- VIRGIN: This is MIME multipart/digest with messages returned
without any header filtering.
- NATIVE: This is VIRGIN format without threading, i.e. messages are
presented in numerical order and the message index is suppressed.
For flexibility and backwards compatibility, the '.' separating the action from
the first argument can be replaced by '-', or omitted. Any non-alphanumeric
character can separate num2
returns a digest of
the messages received since the last digest, and updates the digest issue
sends back message(s)
dir/archive/. If num
is omitted and
dir/dignum does not exist or is 0, the latest HISTGET message
(default 30) are returned. Otherwise, the messages since the
latest digest are returned including the last message in that digest,
so that always at least 1 message is send. If the number of
messages exceeds MAXGET (default 100), only the MAXGET last messages
are returned. if num
is greater than the latest message in
the archive _and_ num2
is specified, the latest messages back to
HISTGET before the end of the latest digest up to MAXGET messages are
returned. This is a good way of always getting at least the latest 30 messages
without knowing the latest message number. A link with such a command could be
put into e.g. dir/text/sub-ok.
are adjusted to make both > 0, and num2
. If either is greater than the largest message number
processed, it is silently set to the largest message number. At most 100
messages are returned.
is index, ezmlm-get
sends back the
subjects and authors of the message(s) num
in sets of 100 from dir/archive/. num
are reasonable adjusted as for 'get'. No warnings are sent. At
most 20 sets of 100 message entries are returned per request. If num
returns the last 100-200 message entries, which
automatically gives information about the last message number.
is thread, ezmlm-get
sends back the
message(s) that have an index subject entry identical to that of message
is given it is ignored. If num
is out of range, and error
message is returned. The message range scanned for the subject is limited to
2000 messages before and after the master message, i.e. the thread
argument. This limit protects very large archives. Most threads are expected
to be considerably more short-lived. In the unlikely event that there are
further messages, these can be retrieved by a second request for the
highest/lowest message returned in the first request.
reads dir/copylines to determine how many
lines of the original message to copy into the outgoing message. If
this file is empty or not present, a value of 0
meaning that only the header is copied.
- (Default.) Copy administrative information and the request to the bottom
of replies. This informs the recipient of other commands, and allows some
error tracking in case the recipient did not originate the request. This
is the default unless the dir/omitbottom file
- Suppress the normal administrative information and request copy. This may
make it harder for the recipient to diagnose problems and learn
- (Default.) Process and reply to commands (does not affect digests).
- Ignore all commands except digest.
- -f format
- ezmlm-get will use format as the default format for all
returned message collections. The default is the first character in
dir/digformat, or 'm' if it does not exist. This
produces MIME with a header subset (see above). Format specifiers
sent with individual requests override the default set with the
-f switch or the dir/digformat file.
- -get, -index, and -thread commands are available to all users, provided
other flags are permissive. This overrides normal behavior, which is to
allow archive retrieval only to moderators, when
dir/modgetonly exists or dir/public
does not exist. This is useful to set up non-public lists that still
give users archive access.
- -get, -index, and -thread commands are available only to moderators, even
if dir/public exists and dir/modgetonly
does not. The -C and -s flags can restrict this
further. This is useful for public lists with archive retrieval restricted
to a subset of users (moderators).
- -get, -index, and -thread requests are processed only if SENDER is
a subscriber. This overrides normal behavior, which is to allow anyone to
issue -get, -index, and -thread requests unless
- Anyone can issue -get, -index, and -thread requests.
- Print version info.
- Print version info.
If dir/charset exists, ezmlm-get
will use the
character set listed for all messages. Otherwise, the default ``us-ascii''
will be used. The character set can be suffixed by ``:'' followed by a code.
If the code is ``Q'', outgoing messages are sent as ``Quoted-Printable'', if
it is ``B'' they are sent ``base64'' encoded. Otherwise, text is sent as is.
- The last message included in the latest normal mode digest.
- The issue number of the latest normal mode digest.
- Returned if a/the message cannot be found.
- Copied into the Administrivia section of digests after the body of
the requesting message.
- The character set used for all ezmlm-get messages (see above). If
not present, the default, ``us-ascii'', is used without encoding.
The digest format per rfc2046 should (but is not required to) be multipart/mixed
with the table-of-contents a text/plain part, and the entire remainder of the
digest a multipart/digest part. The multipart/digest in turn should contain
all the messages. Many MUA's fail to split out the individual messages from
such a hierarchy, so the format used by ezmlm-get
is a simple
multipart/digest, explicitly typing the table-of-contents to text/plain, with
the ``x'' format changing the mail content-type to multipart/mixed.
ezmlm-make(1), ezmlm-manage(1), ezmlm-send(1), ezmlm(5), qmail-command(8),