ezmlm-get(1)                                         ezmlm-get(1)

NAME

ezmlm-get - handles mailing list archive retrieval and digests

SYNOPSIS

ezmlm-get [ -bBcCpPsSvV ][ -f format ][ -t digaddr ] dir [ digestcode[f] ]

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. -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 'm' for MIME with a header subset (see below). For- mat specifiers send with individual requests over- ride the default set with the -f switch. -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/pub- lic 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. 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. -S (Default.) Anyone can issue -get, -index, and -thread requests. -t digaddr When this switch is used, ezmlm-get sends any digest generated to digaddr rather than to the digest subscribers. This switch makes it possible 1 ezmlm-get(1) ezmlm-get(1) to use a separate digest list, rather than the built-in one, allowing you to have different sub- scriber policies for the two, keep an archive of digests, or use non-standard digest names. A sub- list(see ezmlm-send(1)) can be used to disseminate the digest. -v Print version info. -V Print version info.

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. 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/inlocal 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-get expects HOST to match the first line of dir/inhost. 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- 2 ezmlm-get(1) ezmlm-get(1) 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 mes- sage 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 file, digest- requesting scripts, or mail log knows the digestcode and can trigger digests. ezmlm-get copies dir/mailinglist 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/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 mes- sage number for the action or num_num2 the range of mes- sage 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, which 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 3 ezmlm-get(1) ezmlm-get(1) 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 '.' sepa- rating 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 num- ber. 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 mes- sage num from dir/archive/. 4 ezmlm-get(1) ezmlm-get(1) 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.

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), qmail-command(8) 5

1994 Man-cgi 1.15, Panagiotis Christias <christia@theseas.ntua.gr>