ezmlm-request(1) ezmlm-request(1) NNAAMMEE ezmlm-request - Process subject line and body ezmlm commands SSYYNNOOPPSSIISS eezzmmllmm--rreeqquueesstt [ --ff _c_o_n_f_i_g ] _d_i_r DDEESSCCRRIIPPTTIIOONN eezzmmllmm--rreeqquueesstt processes ezmlm commands in the subject line or message body. eezzmmllmm--rreeqquueesstt enables these uses to send the message to _l_i_s_t--rreeqquueesstt_@_h_o_s_t with the complete command address line in the subject field, or with commands and arguments separated by white space. eezzmmllmm-- rreeqquueesstt uses the text to construct a ezmlm command message to the list. If the subject does not start with a letter, eezzmmllmm--rreeqquueesstt instead uses the first body line that starts with a letter. Processing terminates if a line with a hyphen in the first position is encountered. All commands are expected to be in ezmlm command address format or for- matted as: ccoommmmaanndd[list@listhost[[uusseerr@@uusseerrhhoosstt]]]] eezzmmllmm--rreeqquueesstt when invoked with the --ff switch and a configuration file (see below), ignores the subject and processes the first body line (per rules above) in conjunction with the configuration file. It also ser- vices the lliissttss and wwhhiicchh commands. This can be used to construct a global list interface, similar to that used by some other mailing list managers. Messages at the _l_i_s_t--rreeqquueesstt_@_h_o_s_t are restricted to the local list. When eezzmmllmm--rreeqquueesstt is invoked with the --ff _c_o_n_f_i_g switch, command mes- sages are limited to lists in _c_o_n_f_i_g or at the local host. Invalid requests for an existing ezmlm list will lead to a ‘‘help’’ message from eezzmmllmm--mmaannaaggee((11)). OOPPTTIIOONNSS --ff _c_o_n_f_i_g Function as a global interface to ezmlm lists in accordance with _c_o_n_f_i_g_. This file consists of lines starting in the first posi- tion with ‘‘list@host:listdir:description’’. Lines that are blank or start with ‘‘#’’ are ignored. ‘‘listdir’’ and ‘‘description’’ are optional. If only ‘‘list@host’’ is given, the list is used to restrict commands (see below), but not listed. To allow the list to be shown by a ‘‘list’’ command, use ‘‘list@host:’’. To spec- ify only the list name and description, use ‘‘list@host::description’’. If ‘‘listdir’’ is present, the wwhhiicchh command attempts to determine if the user is a subscriber of the list. NNOOTTEE:: this will work only if the user running eezzmmllmm--rreeqquueesstt has read access to the lists subscriber database. If ‘‘listhost’’ is not specified, eezzmmllmm--rreeqquueesstt will use the ‘‘listhost’’ from the first _c_o_n_f_i_g entry matching ‘‘listlocal’’. If ‘‘listhost’’ is specified, but not found in _c_o_n_f_i_g, it is set to the contents of _d_i_r//oouutthhoosstt. UUSSAAGGEE Place an invocation of eezzmmllmm--rreeqquueesstt in _d_i_r//mmaannaaggeerr anywhere before the eezzmmllmm--mmaannaaggee((11)) line. Alternatively, set up _d_i_r//rreeqquueesstt with an invocation of eezzmmllmm--rreeqquueesstt. Make a link from _~_/_._q_m_a_i_l_-_l_i_s_t_-_r_e_q_u_e_s_t to this file. For the global interface, place //ppaatthh//eezzmmllmm--rreeqquueesstt --ff _c_o_n_f_i_g _d_i_r into a file. Link _~_/_._q_m_a_i_l_-_e_z_m_l_m and _~_/_._q_m_a_i_l_-_e_z_m_l_m_-_d_e_f_a_u_l_t to this file. The latter allows eezzmmllmm--rreeqquueesstt to handle its own bounces as well as to reply to messages to e.g. `‘user-ezmlm-lists@listhost’’. Create _d_i_r//iinnllooccaall and _d_i_r//oouuttllooccaall with ‘‘user-ezmlm’’, _d_i_r//oouutthhoosstt with ‘‘listhost’’, _d_i_r//hheeaaddeerrrreemmoovvee with headers to be stripped (copy from a list), _d_i_r_/_t_e_x_t//hheellpp, _d_i_r_/_t_e_x_t//ttoopp, and _d_i_r_/_t_e_x_t//bboottttoomm with the appro- priate texts. Also, create _c_o_n_f_i_g with the appropriate contents. Mail to ‘‘user-ezmlm@listhost’’ will now be answered by eezzmmllmm--rreeqquueesstt. RREECCOOGGNNIIZZEEDD CCOOMMMMAANNDDSS Any command not recognized by eezzmmllmm--rreeqquueesstt is assumed to be valid, as long as it consists of only letters, numbers, hyphen, underscore, period, and ‘‘+’’. This allows eezzmmllmm--rreeqquueesstt to correctly handle com- mands added by the list owner. A number of commands are recognized by eezzmmllmm--rreeqquueesstt but not processed. Instead they are mapped to hheellpp without arguments. These are: ssyysstteemm, ppuutt, and sseett. eezzmmllmm--rreeqquueesstt also handles a number of aliases for ezmlm commands. Since eezzmmllmm--rreeqquueesstt only passes on requests to the list, local restric- tions apply. For commands that have aliases, accepted aliases are listed: ssuubbssccrriibbee sub uunnssuubbssccrriibbee unsub, signoff, remove. iinnddeexx ind. lliisstt recipients, showdist, review, rev, who. Some commands are handled differently when used without arguments: qquueerryy Treated like ‘‘which’’. lliisstt Treated like ‘‘lists’’. BBUUGGSS eezzmmllmm--rreeqquueesstt places stricter requirements on addresses than rfc822. Thus, some addresses that are rfc822-compliant cannot be used as eezzmmllmm-- rreeqquueesstt command arguments. If you fix this, please send a patch to lindberg@id.wustl.edu. I think qmail has the same restriction, though. eezzmmllmm--rreeqquueesstt uses NUL as a line terminator internally. Thus, if will fail if NUL is found within the line it tries to interpret as a com- mand. It is harmless, other than that the remainder of the line will be ignored. The eezzmmllmm--rreeqquueesstt `‘which’’ command does not differentiate between a list for which the command is not available, a list for which the sub- scriber db is not accessible, and a list for which the address is not a subscriber. This should be considered a feature. BBUUGGSS eezzmmllmm--rreeqquueesstt when used as a global interface and receiving multipart messages assumes that the first line of the fist part is the command. Further, it assumes that the first line starting‘‘--’’ is the first MIME boundary. This is virtually always true, but it is easy to con- struct legal messages that do not fit these assumptions. eezzmmllmm--rreeqquueesstt in the global interface role will fail if this first part or the entire message is base64 encoded. SSEEEE AALLSSOO ezmlm-get(1), ezmlm-manage(1), ezmlm-send(1), ezmlm(5) ezmlm-request(1)