Import ezmlm-idx 0.40
[ezmlm] / ezmlm-request.1
1 .TH ezmlm-request 1
2 .SH NAME
3 ezmlm-request \- Process subject line and body ezmlm commands
4 .SH SYNOPSIS
5 .B ezmlm-request
6 [
7 .B \-f\fI config
8 ]
9 .I dir
10 .SH DESCRIPTION
11 .B ezmlm-request
12 processes ezmlm commands in the subject line or message body.
13 .B ezmlm-request
14 enables these uses to send the message to
15 .I list\fB\-request\fI@host
16 with the complete command address line in the subject field,
17 or with commands and arguments separated by white
18 space.
19 .B ezmlm-request
20 uses the text to construct a ezmlm command message to the list.
21 If the subject does not start with a letter,
22 .B ezmlm-request
23 instead uses the first body line that starts with a letter. Processing
24 terminates if a line with a hyphen in the first position is encountered.
25
26 All commands are expected to be in ezmlm command address format or formatted
27 as:
28
29 .EX
30 .BR command [list@listhost [user@userhost]]
31 .EE
32
33 .B ezmlm-request
34 when invoked with the
35 .B \-f
36 switch and a configuration file (see below), ignores the subject and processes
37 the first body line (per rules above) in conjunction with the configuration
38 file. It also services the
39 .B lists
40 and
41 .B which
42 commands. This can be used
43 to construct a global list interface, similar to that used by some other
44 mailing list managers.
45
46 Messages at the
47 .I list\fB\-request\fI@host
48 are restricted to the local list. When
49 .B ezmlm-request
50 is invoked with the
51 .B \-f\fI config
52 switch, command messages are limited to lists in
53 .I config
54 or at the local host.
55
56 Invalid requests for an existing ezmlm list will
57 lead to a ``help'' message from
58 .BR ezmlm-manage(1) .
59 .SH OPTIONS
60 .TP
61 .B \-f\fI config
62 Function as a global interface to ezmlm lists in accordance with
63 .IR config.
64 This file consists of lines starting in the first position
65 with ``list@host:listdir:description''. Lines that are blank or start
66 with ``#'' are ignored. ``listdir''
67 and ``description'' are optional. If only ``list@host'' is given, the list
68 is used to restrict commands (see below), but not listed. To allow the list
69 to be shown by a ``list'' command, use ``list@host:''. To specify only
70 the list name and description, use ``list@host::description''.
71 If ``listdir'' is
72 present, the
73 .B which
74 command attempts to determine if the user is a subscriber of the list.
75 .B NOTE:
76 this will work only if the user running
77 .B ezmlm-request
78 has read access to the lists subscriber database.
79
80 If ``listhost'' is not specified,
81 .B ezmlm-request
82 will use the ``listhost'' from the first
83 .I config
84 entry matching ``listlocal''. If ``listhost'' is specified, but not found
85 in
86 .IR config ,
87 it is set to the contents of
88 .IR dir\fB/outhost .
89 .SH USAGE
90 Place an invocation of
91 .B ezmlm-request
92 in
93 .I dir\fB/manager
94 anywhere before the
95 .B ezmlm-manage(1)
96 line.
97
98 Alternatively, set up
99 .I dir\fB/request
100 with an invocation of
101 .BR ezmlm-request .
102 Make a link from
103 .I ~/.qmail-list-request
104 to this file.
105
106 For the global interface, place
107 .B /path/ezmlm-request -f \fIconfig dir
108 into a file.
109 Link
110 .I ~/.qmail-ezmlm
111 and
112 .I ~/.qmail-ezmlm-default
113 to this file. The latter allows
114 .B ezmlm-request
115 to handle its own bounces as well as to reply to messages to e.g.
116 \``user-ezmlm-lists@listhost''.
117 Create
118 .IR dir\fB/inlocal
119 and
120 .IR dir\fB/outlocal
121 with ``user-ezmlm'',
122 .IR dir\fB/outhost
123 with ``listhost'',
124 .IR dir\fB/headerremove
125 with headers to be stripped (copy from a list),
126 .IR dir/text\fB/help ,
127 .IR dir/text\fB/top ,
128 and
129 .I dir/text\fB/bottom
130 with the appropriate texts.
131 Also, create
132 .I config
133 with the appropriate contents.
134
135 Mail to ``user-ezmlm@listhost'' will now be answered by
136 .BR ezmlm-request .
137 .SH "RECOGNIZED COMMANDS"
138 Any command not recognized by
139 .B ezmlm-request
140 is assumed to be valid, as long as it consists of only letters, numbers,
141 hyphen, underscore, period, and ``+''. This allows
142 .B ezmlm-request
143 to correctly handle commands added by the list owner.
144
145 A number of commands are recognized by
146 .B ezmlm-request
147 but not processed. Instead they are mapped to
148 .B help
149 without arguments. These
150 are:
151 .BR system ,
152 .BR put ,
153 and
154 .BR set .
155
156 .B ezmlm-request
157 also handles a number of aliases for ezmlm commands. Since
158 .B ezmlm-request
159 only passes on requests to the list, local restrictions apply.
160 For commands that have aliases, accepted aliases are listed:
161 .TP
162 .B subscribe
163 sub
164 .TP
165 .B unsubscribe
166 unsub, signoff, remove.
167 .TP
168 .B index
169 ind.
170 .TP
171 .B list
172 recipients, showdist, review, rev, who.
173 .TP
174
175 Some commands are handled differently when used without arguments:
176 .TP
177 .B query
178 Treated like ``which''.
179 .TP
180 .B list
181 Treated like ``lists''.
182 .SH BUGS
183 .B ezmlm-request
184 places stricter requirements on addresses than rfc822. Thus, some addresses
185 that are rfc822-compliant cannot be used as
186 .B ezmlm-request
187 command arguments. If you fix this,
188 please send a patch to lindberg@id.wustl.edu. I think qmail has the same
189 restriction, though.
190
191 .B ezmlm-request
192 uses NUL as a line terminator internally. Thus, if will fail if NUL is found
193 within the line it tries to interpret as a command. It is harmless, other than
194 that the remainder of the line will be ignored.
195
196 The
197 .B ezmlm-request
198 \``which''
199 command does not differentiate between a list for which the command is not
200 available, a list for which the subscriber db is not accessible, and a list
201 for which the address is not a subscriber. This should be considered a feature.
202 .SH BUGS
203 .B ezmlm-request
204 when used as a global interface and receiving multipart messages assumes that
205 the first line of the fist part is the command. Further, it assumes that the
206 first line starting``--'' is the first MIME boundary. This is virtually
207 always true, but it is easy to construct legal messages that do not fit these
208 assumptions.
209 .B ezmlm-request
210 in the global interface role
211 will fail if this first part or the entire message is base64 encoded.
212 .SH "SEE ALSO"
213 ezmlm-get(1),
214 ezmlm-manage(1),
215 ezmlm-send(1),
216 ezmlm(5)