DragonFly On-Line Manual Pages
ezmlm-get(1) DragonFly General Commands Manual ezmlm-get(1)
NAME
ezmlm-get - handles mailing list archive retrieval and digests
SYNOPSIS
ezmlm-get [ -bBcCpPsSvV ][ -f format ] dir [ digestcode[f] ]
DESCRIPTION
ezmlm-get 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 outgoing
messages.
If digestcode is not specified on the command line, ezmlm-get will try
to read it from the file dir/digestcode .
ezmlm-get is normally invoked from a .qmail(7) file. It reads a mail
message from its standard input, and a mail envelope from the SENDER,
LOCAL, and HOST environment variables.
ezmlm-get uses LOCAL to determine where it is invoked. If LOCAL 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.
If LOCAL 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 subscribers.
Otherwise, ezmlm-get expects LOCAL 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.
ezmlm-get checks action for dig.digestcode, index, thread, and get. If
action is one of these, ezmlm-get handles the request and sends a
reply. If successful, it exits 99 (ignore remaining .qmail(7) file
entries). If action is 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. digestcode must be
alphanumeric, and match (case-insensitive) digestcode 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 administrivia section
of the digest. This is followed by the contents of dir/text/digest, if
this file exists.
Note: Anyone who can read your dir/manager and dir/digestcode files,
digest-requesting scripts, or mail log knows the digestcode and can
trigger digests.
ezmlm-get copies the TXT_MAILING_LIST message into a Mailing-List field
in its response. If the incoming message has a Mailing-List field,
ezmlm-get refuses to respond. ezmlm-get 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 qmail-qmqp(1) to send
messages.
If dir/public does not exist, ezmlm-get rejects all 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, where num is the message number for the action
or num_num2 the range of message numbers for the action.
f is an optional format specifier for -get, -thread, and -dig requests.
It is allowed, but ignored for -index requests. Currently, the
following are allowed:
r rfc1153. This is a ``plain'' non-MIME format for dumb clients.
m (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) compatible.
x 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''.
v VIRGIN: This is MIME multipart/digest with messages returned
without any header filtering.
n 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 from num.
If action is dig.digestcode, ezmlm-get returns a digest of the messages
received since the last digest, and updates the digest issue counter.
If action is get, ezmlm-get sends back message(s) num or num through
num2. from 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.
num and num2 are adjusted to make both > 0, and num2 >= num. 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.
If action is index, ezmlm-get sends back the subjects and authors of
the message(s) num or num through num2 in sets of 100 from
dir/archive/. num and num2 are reasonable adjusted as for 'get'. No
warnings are sent. At most 20 sets of 100 message entries are returned
per request. If num is omitted, ezmlm-get returns the last 100-200
message entries, which automatically gives information about the last
message number.
If action is thread, ezmlm-get sends back the message(s) that have an
index subject entry identical to that of message num from dir/archive/.
If num2 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.
ezmlm-get 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 is presumed, meaning that only the
header is copied.
OPTIONS
-b (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 exists.
-B Suppress the normal administrative information and request copy.
This may make it harder for the recipient to diagnose problems
and learn commands.
-c (Default.) Process and reply to commands (does not affect
digests).
-C 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.
-p -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.
-P -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).
-s -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
dir/subgetonly exists.
-S Anyone can issue -get, -index, and -thread requests.
-v Print version info.
-V Print version info.
CHARACTER SETS
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.
FILES
dir/dignum
The last message included in the latest normal mode digest.
dir/digissue
The issue number of the latest normal mode digest.
dir/text/get-bad
Returned if a/the message cannot be found.
dir/text/digest
Copied into the Administrivia section of digests after the body
of the requesting message.
dir/charset
The character set used for all ezmlm-get messages (see above).
If not present, the default, ``us-ascii'', is used without
encoding.
BUGS
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.
SEE ALSO
ezmlm-make(1), ezmlm-manage(1), ezmlm-send(1), ezmlm(5), qmailcommand(8)
, qmail-qmqp(1)
ezmlm-get(1)