comparison doc/user_guide.txt @ 881:85cc6e6a94b8

better mailgw user docs
author Richard Jones <richard@users.sourceforge.net>
date Thu, 18 Jul 2002 11:26:56 +0000
parents 938edfdeac6e
children 43ab730ee194
comparison
equal deleted inserted replaced
880:de3da99a7c02 881:85cc6e6a94b8
1 ========== 1 ==========
2 User Guide 2 User Guide
3 ========== 3 ==========
4 4
5 :Version: $Revision: 1.4 $ 5 :Version: $Revision: 1.5 $
6 6
7 .. contents:: 7 .. contents::
8
9 Note: this document will refer to *issues* as the primary store of information
10 in the tracker. This is the default of the classic template, bubt may vary in
11 any given installation.
12
13 Web Interface
14 -------------
15
16 Index views may be modified by the following arguments:
17
18 +-----------+--------------------------------------------------------------+
19 | :sort | sort by prop name, optionally preceeded with '-' |
20 | | to give descending or nothing for ascending sorting. |
21 +-----------+--------------------------------------------------------------+
22 | :group | group by prop name, optionally preceeded with '-' or |
23 | | to sort in descending or nothing for ascending order. |
24 +-----------+--------------------------------------------------------------+
25 | :filter | selects which props should be displayed in the filter |
26 | | section. Default is all. |
27 +-----------+--------------------------------------------------------------+
28 | :columns | selects the columns that should be displayed. |
29 | | Default is all. |
30 +-----------+--------------------------------------------------------------+
31 | propname | selects the values the node properties given by propname |
32 | | must have (very basic search/filter). |
33 +-----------+--------------------------------------------------------------+
34
35 Searching
36 ~~~~~~~~~
37
38 TODO: some information about how searching works
39
40
41 Access Controls
42 ~~~~~~~~~~~~~~~
43
44
45 Managing Issues
46 ~~~~~~~~~~~~~~~
47
48 TODO: some mention of how the various widgets work
49
50
51 E-Mail Gateway
52 --------------
53
54 E-mail sent to Roundup is examined for several pieces of information:
55
56 1. `subject-line information`_ identifying the purpose of the e-mail
57 2. `e-mail message content`_ which is to be extracted
58 3. e-mail attachments which should be associated with the message
59
60 Subject-line information
61 ~~~~~~~~~~~~~~~~~~~~~~~~
62
63 The subject line of the incoming message is examined to find one of:
64
65 1. the item that the message is responding to,
66 2. the type of item the message should create, or
67 3. we default the item class and try some trickiness
68
69 If the subject line contains a prefix in ``[square brackets]`` then we're
70 looking at case 1 or 2 above. Note that any "re:" or "fwd:" prefixes are
71 stripped off the subject line before we start looking for real information.
72
73 If an item designator (class name and id number, for example ``issue123``)
74 is found there, a new "msg" node is added to the "messages" property for
75 that item, and any new "file" nodes are added to the "files" property for
76 the item.
77
78 If just an item class name is found there, we attempt to create a new item of
79 that class with its "messages" property initialized to contain the new "msg"
80 node and its "files" property initialized to contain any new "file" nodes.
81
82 The third case above - where no ``[information]`` is provided, the tracker's
83 ``MAIL_DEFAULT_CLASS`` configuration variable defines what class of item
84 the message relates to. We try to match the subject line to an existing
85 item of the default class, and if there's a match, the message is related to
86 that matched item. If not, then a new item of the default class is created.
87
88 Setting Properties
89 ::::::::::::::::::
90
91 The e-mail interface also provides a simple way to set properties on items. At
92 the end of the subject line, propname=value pairs can be specified in square
93 brackets, using the same conventions as for the roundup set shell command.
94
95 For example,
96
97 - setting the priority of an issue::
98
99 Subject: Re: [issue1] the coffee machine is broken! [priority=urgent]
100
101 - adding yourself to a nosy list::
102
103 Subject: Re: [issue2] we're out of widgets [nosy=+richard]
104
105 - setting the nosy list to just you::
106
107 Subject: Re: [issue2] we're out of widgets [nosy=richard]
108
109 - removing yourself from a nosy list::
110
111 Subject: Re: [issue2] we're out of widgets [nosy=-richard]
112
113 In all cases, the message relates to issue 2. The ``Re:`` prefix is stripped
114 off.
115
116
117 E-Mail Message Content
118 ~~~~~~~~~~~~~~~~~~~~~~
119
120 Roundup only associates plain text (MIME type ``text/plain``) as messages for
121 items. Any other parts of a message are associated as downloadable files. If
122 no plain text part is found, the message is rejected.
123
124 To do this, incoming messages are examined for multiple parts:
125
126 * In a multipart/mixed message or part, each subpart is extracted and
127 examined. The text/plain subparts are assembled to form the textual body
128 of the message, to be stored in the file associated with a "msg" class
129 node. Any parts of other types are each stored in separate files and
130 given "file" class nodes that are linked to the "msg" node.
131 * In a multipart/alternative message or part, we look for a text/plain
132 subpart and ignore the other parts.
133
134 If the message is a response to a previous message, and contains quoted
135 sections, then these will be stripped out of the message if the
136 ``EMAIL_KEEP_QUOTED_TEXT`` configuration variable is set to ``'no'``.
137
138 Message summary
139 :::::::::::::::
140
141 The "summary" property on message nodes is taken from the first non-quoting
142 section in the message body. The message body is divided into sections by blank
143 lines. Sections where the second and all subsequent lines begin with a ">" or
144 "|" character are considered "quoting sections". The first line of the first
145 non-quoting section becomes the summary of the message.
146
147
148 Address handling
149 ~~~~~~~~~~~~~~~~
150
151 All of the addresses in the ``To:`` and ``Cc:`` headers of the incoming
152 message are
153 looked up among the tracker users, and the corresponding users are placed
154 in the
155 "recipients" property on the new "msg" node. The address in the ``From:`` header
156 similarly determines the "author" property of the new "msg" node. The default
157 handling for addresses that don't have corresponding users is to create new
158 users with no passwords and a username equal to the address.
159
160 The addresses mentioned in the ``To:``, ``From:`` and ``Cc:`` headers of
161 the message may be added to the `nosy list`_ depending on:
162
163 ``ADD_AUTHOR_TO_NOSY``
164 Does the author of a message get placed on the nosy list automatically?
165 If 'new' is used, then the author will only be added when a message
166 creates a new issue. If 'yes', then the author will be added on followups
167 too. If 'no', they're never added to the nosy.
168
169 ``ADD_RECIPIENTS_TO_NOSY``
170 Do the recipients (To:, Cc:) of a message get placed on the nosy list?
171 If 'new' is used, then the recipients will only be added when a message
172 creates a new issue. If 'yes', then the recipients will be added on
173 followups too. If 'no', they're never added to the nosy.
174
175
176 Nosy List
177 :::::::::
178
179 The nosy list watches for additions to the "messages" property of items.
180 When a new message is added, it is sent to all the users
181 on the "nosy" list for the item that are not already on the "recipients" list
182 of the message. Those users are then appended to the "recipients" property on
183 the message, so multiple copies of a message are never sent to the same user.
184 The journal recorded by the hyperdatabase on the "recipients" property then
185 provides a log of when the message was sent to whom.
186
187 If the author of the message is also in the nosy list for the item that the
188 message is attached to, then the config var ``MESSAGES_TO_AUTHOR`` is queried
189 to determine if they get a nosy list copy of the message too.
190
8 191
9 Command Line Tool 192 Command Line Tool
10 ----------------- 193 -----------------
11 194
12 Usage: ``roundup-admin [-i instance home] [-u login] [-c] <command> <arguments>`` 195 Usage: ``roundup-admin [-i instance home] [-u login] [-c] <command> <arguments>``
173 356
174 If either the name or password is not supplied, they are obtained from the 357 If either the name or password is not supplied, they are obtained from the
175 command-line. 358 command-line.
176 359
177 360
178 Web Interface
179 -------------
180
181 Index views may be modified by the following arguments:
182
183 +-----------+--------------------------------------------------------------+
184 | :sort | sort by prop name, optionally preceeded with '-' |
185 | | to give descending or nothing for ascending sorting. |
186 +-----------+--------------------------------------------------------------+
187 | :group | group by prop name, optionally preceeded with '-' or |
188 | | to sort in descending or nothing for ascending order. |
189 +-----------+--------------------------------------------------------------+
190 | :filter | selects which props should be displayed in the filter |
191 | | section. Default is all. |
192 +-----------+--------------------------------------------------------------+
193 | :columns | selects the columns that should be displayed. |
194 | | Default is all. |
195 +-----------+--------------------------------------------------------------+
196 | propname | selects the values the node properties given by propname |
197 | | must have (very basic search/filter). |
198 +-----------+--------------------------------------------------------------+
199
200 Not sure what to put in here...
201
202 E-Mail Gateway
203 --------------
204
205 Performing Actions
206 ~~~~~~~~~~~~~~~~~~
207
208 The subject line of the incoming message is examined to determine whether the
209 message is an attempt to create a new item or to discuss an existing item. A
210 designator enclosed in square brackets is sought as the first thing on the
211 subject line (after skipping any "Fwd:" or "Re:" prefixes).
212 If an item designator (class name and id number) is found there, the newly
213 created "msg" node is added to the "messages" property for that item, and any
214 new "file" nodes are added to the "files" property for the item.
215 If just an item class name is found there, we attempt to create a new item of
216 that class with its "messages" property initialized to contain the new "msg"
217 node and its "files" property initialized to contain any new "file" nodes.
218
219 Setting Properties
220 ~~~~~~~~~~~~~~~~~~
221
222 The e-mail interface also provides a simple way to set properties on items. At
223 the end of the subject line, propname=value pairs can be specified in square
224 brackets, using the same conventions as for the roundup set shell command.
225
226 For example,
227
228 - setting the priority of an issue::
229
230 Subject: Re: [issue1] the coffee machine is broken! [priority=urgent]
231
232 - adding yourself to a nosy list (both of these are equivalent)::
233
234 Subject: Re: [issue2] we're out of widgets [nosy=+richard]
235 Subject: Re: [issue2] we're out of widgets [nosy=richard]
236
237 - removing yourself from a nosy list::
238
239 Subject: Re: [issue2] we're out of widgets [nosy=-richard]
240
241
242 Message content
243 ~~~~~~~~~~~~~~~
244
245 Incoming messages are examined for multiple parts:
246
247 * In a multipart/mixed message or part, each subpart is extracted and
248 examined. The text/plain subparts are assembled to form the textual body
249 of the message, to be stored in the file associated with a "msg" class
250 node. Any parts of other types are each stored in separate files and
251 given "file" class nodes that are linked to the "msg" node.
252 * In a multipart/alternative message or part, we look for a text/plain
253 subpart and ignore the other parts.
254
255 Message summary
256 :::::::::::::::
257
258 The "summary" property on message nodes is taken from the first non-quoting
259 section in the message body. The message body is divided into sections by blank
260 lines. Sections where the second and all subsequent lines begin with a ">" or
261 "|" character are considered "quoting sections". The first line of the first
262 non-quoting section becomes the summary of the message.
263
264 Address handling
265 ~~~~~~~~~~~~~~~~
266
267 All of the addresses in the To: and Cc: headers of the incoming message are
268 looked up among the user nodes, and the corresponding users are placed in the
269 "recipients" property on the new "msg" node. The address in the From: header
270 similarly determines the "author" property of the new "msg" node. The default
271 handling for addresses that don't have corresponding users is to create new
272 users with no passwords and a username equal to the address. (The web interface
273 does not permit logins for users with no passwords.) If we prefer to reject
274 mail from outside sources, we can simply register an auditor on the "user"
275 class that prevents the creation of user nodes with no passwords.
276
277 Triggers
278 ~~~~~~~~
279
280 Both cases may trigger detectors (in the first case we are calling the set()
281 method to add the message to the item's spool; in the second case we are
282 calling the create() method to create a new node). If an auditor raises an
283 exception, the original message is bounced back to the sender with the
284
285 Nosy Lists
286 ::::::::::
287
288 A standard detector is provided that watches for additions to the "messages"
289 property. When a new message is added, the detector sends it to all the users
290 on the "nosy" list for the item that are not already on the "recipients" list
291 of the message. Those users are then appended to the "recipients" property on
292 the message, so multiple copies of a message are never sent to the same user.
293 The journal recorded by the hyperdatabase on the "recipients" property then
294 provides a log of when the message was sent to whom.
295
296 361
297 ----------------- 362 -----------------
298 363
299 Back to `Table of Contents`_ 364 Back to `Table of Contents`_
300 365

Roundup Issue Tracker: http://roundup-tracker.org/