~mailman-coders/mailman/2.1

1 by
This commit was manufactured by cvs2svn to create branch
1
Mailman - The GNU Mailing List Management System
747 by bwarsaw
Update copyright years, typo fix.
2
Copyright (C) 1998-2005 by the Free Software Foundation, Inc.
749 by tkikuchi
FSF office has moved to 51 Franklin Street.
3
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
1 by
This commit was manufactured by cvs2svn to create branch
4
1146 by Mark Sapiro
Updated some FAQ URLs for wiki.list.org.
5
Note: We've migrated the FAQ to the wiki at http://wiki.list.org/
6
      To see the Mailman FAQ go to http://wiki.list.org/x/AgA3
1 by
This commit was manufactured by cvs2svn to create branch
7
8
FREQUENTLY ASKED QUESTIONS
9
10
Q. How do you spell this program?
11
12
A. You spell it "Mailman", with a leading capital "M" and a lowercase
13
   second "m".  It is incorrect to spell it "MailMan" (i.e. you should
14
   not use StudlyCaps).
15
16
Q. I'm getting really terrible performance for outgoing messages.  It
17
   seems that if the MTA has trouble resolving DNS for any recipients,
18
   qrunner just gets really slow clearing the queue.  Any ideas?
19
20
A. What's likely happening is that your MTA is doing DNS resolution on
21
   recipients for messages delivered locally (i.e. from Mailman to
22
   your MTA via SMTPDirect.py).  This is a Bad Thing.  You need to
23
   turn off synchronous DNS resolution for messages originating from
24
   the local host.
25
1052.1.4 by A.M. Kuchling
Remove references to README.{EXIM,QMAIL,LINUX}; grammar fix
26
   In Exim, the value to edit is receiver_verify_hosts.  Consult the
27
   Mailman Installation Manual for details.  Other MTAs have (of
28
   course) different parameters and defaults that control this.  First
29
   check the README file for your MTA and then consult your MTA's own
30
   documentation.
1 by
This commit was manufactured by cvs2svn to create branch
31
32
Q. My list members are complaining about Mailman's List-* headers!
33
   What can I do about this?
34
35
A. These headers are described in RFC 2369 and are added by Mailman
36
   for the long-term benefit of end-users.  While discouraged, the
37
   list admin can disable these via the General Options page.  See
38
   also README.USERAGENT for more information.
39
40
Q. Can I put the user's address in the footer that Mailman adds to
41
   each message?
42
747 by bwarsaw
Update copyright years, typo fix.
43
A. Yes, in Mailman 2.1.  The site admin needs to enable personalization by
44
   setting the following variable in the mm_cfg.py file:
1 by
This commit was manufactured by cvs2svn to create branch
45
744 by tkikuchi
FAQ update for personalization. Thanks Mark Sapiro.
46
    OWNERS_CAN_ENABLE_PERSONALIZATION = Yes
1 by
This commit was manufactured by cvs2svn to create branch
47
747 by bwarsaw
Update copyright years, typo fix.
48
   Once this is done, list admins can enable personalization for regular
49
   delivery members (digest deliveries can't be personalized currently).  A
50
   personalized list can include the user's address in the footer.
1 by
This commit was manufactured by cvs2svn to create branch
51
52
Q. My users hate HTML in their email and for security reasons, I want
53
   to strip out all MIME attachments.  How can I do this?
54
55
A. Mailman 2.1 has this feature built-in.  See the Content Filtering
56
   Options page in the admin interface.
57
58
Q. What if I get "document contains no data" from the web server, or
59
   mail isn't getting delivered, or I see "Premature end of script
60
   headers" or "Mailman CGI error!!!"
61
62
A. The most likely cause of this is that the GID that is compiled into
63
   the C wrappers does not match the GID that your Web server invokes
64
   CGI scripts with.  Note that a similar error could occur if your
65
   mail system invokes filter programs under a GID that does not match
66
   the one compiled into the C mail wrapper.
67
68
   To fix this you will need to re-configure Mailman using the
69
   --with-cgi-gid and --with-mail-gid options.  See the INSTALL file
70
   for details.
71
72
   These errors are logged to syslog and they do not show up in the
73
   Mailman log files.  Problems with the CGI wrapper do get reported
74
   in the web browser though (unless STEALTH_MODE is enabled), and
75
   include the expected GID, so that should help a lot.
76
77
   You may want to have syslog running and configured to log the
78
   mail.error log class somewhere; on Solaris systems, the line
79
80
       mail.debug                /var/log/syslog
81
82
   causes the messages to go to them in /var/log/syslog, for example.
83
   (The distributed syslog.conf forwards the message to the loghost,
84
   when present.  See the syslog man page for more details.)
85
1052.1.4 by A.M. Kuchling
Remove references to README.{EXIM,QMAIL,LINUX}; grammar fix
86
   If your system is set up like this, and you get a failure trying to
1 by
This commit was manufactured by cvs2svn to create branch
87
   visit the mailman/listinfo web page, and it's due to a UID or GID
88
   mismatch, then you should get an entry at the end of
89
   /var/log/syslog identifying the expected and received values.
90
91
   If you are not getting any log messages in syslog, or in Mailman's
92
   own log files, but messages are still not being delivered, then it
93
   is likely that qrunner is not running (qrunner is the process that
94
   handles all mail in the system).  In Mailman 2.0, qrunner was
95
   invoked from cron so make sure your crontab entries for the
96
   `mailman' user have been installed.  In Mailman 2.1, qrunner is
97
   started with the bin/mailmanctl script, which can be invoked
98
   manually, or merged with your OS's init scripts.
99
100
Q. What should I check periodically?
101
102
A. Many of the scripts have their standard error logged to
103
   $prefix/logs/error, and some of the modules write caught errors
104
   there, as well, so you should check there at least occasionally to
105
   look for bugs in the code and problems in your setup.
106
107
   You may want to periodically check the other log files in the logs/
108
   directory, perhaps occasionally rotating them with something like
109
   the Linux logrotate script.
110
111
Q. I can't access the public archives.  Why?
112
113
A. If you are using Apache, you must make sure that FollowSymLinks is
114
   enabled for the path to the public archives.  Note that the actual
115
   archives always reside in the private tree, and only when archives
116
   are public, is the symlink followed. See this archive message for
117
   more details:
118
119
   http://mail.python.org/pipermail/mailman-users/1998-November/000150.html
120
121
Q. Still having problems?  Running QMail?
122
123
A. Make sure that you are using "preline" before calling the "mailman"
124
   wrapper:
125
126
       |preline /home/mailman/mail/mailman post listname
127
128
   "preline" adds a Unix-style "From " header which the archiver requires.
129
   You can fix the archive mbox files by adding:
130
131
       From somebody Mon Oct  9 12:27:34 MDT 2000
132
133
   before every message and re-running the archive command
1052.1.4 by A.M. Kuchling
Remove references to README.{EXIM,QMAIL,LINUX}; grammar fix
134
   "bin/arch listname".  The archives should now exist.
1 by
This commit was manufactured by cvs2svn to create branch
135
136
Q. I want to get rid of some messages in my archive.  How do I do
137
   this?
138
139
A. David Rocher posts the following recipe:
140
141
   * remove $prefix/archives/private/<listname>
142
   * edit $prefix/archives/private/<listname>.mbox/<listname>.mbox [optional]
143
   * run $prefix/bin/arch <listname>
144
145
Q. How secure are the authentication mechanisms used in Mailman's web
146
   interface?
147
148
A. If your Mailman installation run on an SSL-enabled web server
149
   (i.e. you access the Mailman web pages with "https://..." URLs),
150
   you should be as safe as SSL itself is.
151
152
   However, most Mailman installation run under standard,
153
   encryption-unaware servers.  There's nothing wrong with that for
154
   most applications, but a sufficiently determined cracker *could*
155
   get unauthorized access by:
156
157
   * Packet sniffing: The password used to do the initial
158
     authentication for any non-public Mailman page is sent as clear
159
     text over the net.  If you consider this to be a big problem, you
160
     really should use an SSL-enabled server.
161
162
   * Stealing a valid cookie: After successful password
163
     authentication, Mailman sends a "cookie" back to the user's
164
     browser.  This cookie will be used for "automatic" authentication
165
     when browsing further within the list's protected pages.  Mailman
166
     employs "session cookies" which are set until you quit your
167
     browser or explicitly log out.
168
169
     Gaining access to the user's cookie (e.g. by being able to read
170
     the user's browser cookie database, or by means of packet
171
     sniffing, or maybe even by some broken browser offering all it's
172
     cookies to any and all sites the user accesses), and at the same
173
     time being able to fulfill the other criteria for using the
174
     cookie could result in unauthorized access.
175
176
     Note that this problem is more easily exploited when users browse
177
     the web via proxies -- in that case, the cookie would be valid
178
     for any connections made through that proxy, and not just for
179
     connections made from the particular machine the user happens to
180
     be accessing the proxy from.
181
182
   * Getting access to the user's terminal: This is really just
183
     another kind of cookie stealing.  The short cookie expiration
184
     time is supposed to help defeat this problem.  It can be
185
     considered the price to pay for the convenience of not having to
186
     type the password in every time.
187
188
Q. I want to backup my lists.  What do I need to save?
189
1146 by Mark Sapiro
Updated some FAQ URLs for wiki.list.org.
190
A. See this FAQ entry: http://wiki.list.org/x/5oA9
1 by
This commit was manufactured by cvs2svn to create branch
191
192
Q. How do I rename a list?
193
194
A. Renaming a list is currently a bit of a pain to do completely
195
   correctly, especially if you want to make sure that the old list
196
   contacts are automatically forwarded to the new list.  This ought
197
   to be easier. :(
198
199
   The biggest problem you have is how to stop mail and web traffic to
200
   your list during the transition, and what to do about any mail
201
   undelivered to the old list after the move.  I don't think there
202
   are any foolproof steps, but here's how you can reduce the risk:
203
204
   - Temporarily disable qrunner.  To do this, you need to edit the
205
     user `mailman's crontab entry.  Execute the following command,
206
     commenting out the qrunner line when you're dropped into your
207
     editor.  Then save the file and quit the editor.
208
209
     % crontab -u mailman -e
210
211
   - Turn off your mail server.  This is mostly harmless since remote
212
     MTAs will just keep retrying until you turn it back on, and it's
213
     not going to be off for very long.
214
215
   - Next turn off your web server if possible.  This of course means
216
     your entire site will be off-line while you make the switch and
217
     this may not be acceptable to you.  The next best suggestion is
218
     to set up your permanent redirects now for the list you're
219
     moving.  This means that anybody looking for the list under its
220
     old name will be redirected to the new name, but they'll get
221
     errors until you've completed the move.
222
223
     Let's say the old name is "oldname" and the new name is
224
     "newname".  Here are some Apache directives that will do the
225
     trick, though YMMV:
226
227
     RedirectMatch permanent /mailman/(.*)/oldname(.*) http://www.dom.ain/mailman/$1/newname$2
228
     RedirectMatch permanent /pipermail/oldname(.*)    http://www.dom.ain/pipermail/newname$1
229
230
     Add these to your httpd.conf file and restart Apache.
231
232
   - Now cd to the directory where you've installed Mailman.  Let's
233
     say it's /usr/local/mailman:
234
235
     % cd /usr/local/mailman
236
237
     and cd to the `lists' subdirectory:
238
239
     % cd lists
240
241
     You should now see the directory `oldname'.  Move this to
242
     `newname':
243
244
     % mv oldname newname
245
246
   - Now cd to the private archives directory:
247
248
     % cd ../archives/private
249
250
     You will need to move the oldname's .mbox directory, and the
251
     .mbox file within that directory.  Don't worry about the public
252
     archives; the next few steps will take care of them without
253
     requiring you to fiddle around in the file system:
254
255
     % mv oldname.mbox newname.mbox
256
     % mv newname.mbox/oldname.mbox newname.mbox/newname.mbox
257
258
   - You now need to run the `bin/move_list' script to update some of
259
     the internal archiver paths.  IMPORTANT: Skip this step if you
260
     are using Mailman 2.1!
261
262
     % cd ../..
263
     % bin/move_list newname
264
265
   - You should now regenerate the public archives:
266
267
     % bin/arch newname
268
269
   - You'll likely need to change some of your list's configuration
270
     options, especially if you want to accept postings addressed to
271
     the old list on the new list.  Visit the admin interface for your
272
     new list:
273
274
     o Go to the General options
275
276
     o Change the "real_name" option to reflect the new list's name,
277
       e.g. "Newname"
278
279
     o Change the subject prefix to reflect the new list's name,
280
       e.g. "[Newname] " (yes, that's a trailing space character).
281
282
     o Optionally, update other configuration fields like info,
283
       description, or welcome_msg.  YMMV.
284
285
     o Save your changes
286
287
     o Go to the Privacy options
288
289
     o Add the old list's address to acceptable_aliases.
290
       E.g. "oldname@dom.ain".  This way, (after the /etc/aliases
291
       changes described below) messages posted to the old list will
292
       not be held by the new list for "implicit destination"
293
       approval.
294
295
     o Save your changes
296
297
   - Now you want to update your /etc/aliases file to include the
298
     aliases for the new list, and forwards for the old list to the
299
     new list.  Note that these instructions are for Sendmail style
300
     alias files, adjust to the specifics of how your MTA is set up.
301
302
     o Find the lines defining the aliases for your old list's name
303
304
     o Copy and paste them just below the originals.
305
306
     o Change all the references of "oldname" to "newname" in the
307
       pasted stanza.
308
309
     o Now change the targets of the original aliases to forward to
310
       the new aliases.  When you're done, you will end up with
311
       /etc/aliases entries like the following (YMMV):
312
313
       XXX This needs updating for MM2.1!
314
315
       # Forward the oldname list to the newname list
316
       oldname:         newname@dom.ain
317
       oldname-request: newname-request@dom.ain
318
       oldname-admin:   newname-admin@dom.ain
319
       oldname-owner:   newname-owner@dom.ain
320
321
       newname:         "|/usr/local/mailman/mail/mailman post newname"
322
       newname-admin:   "|/usr/local/mailman/mail/mailman mailowner newname"
323
       newname-request: "|/usr/local/mailman/mail/mailman mailcmd newname"
324
       newname-owner:   newname-admin
325
326
     o Run newaliases
327
328
   - Before you restart everything, you want to make one last check.
329
     You're looking for files in the qfiles/ directory that may have
330
     been addressed to the old list but weren't delivered before you
331
     renamed the list.  Do something like the following:
332
333
     % cd /usr/local/mailman/qfiles
334
     % grep oldname *.msg
335
336
     If you get no hits, skip to the next step, you've got nothing to
337
     worry about.
338
339
     If you did get hits, then things get complicated.  I warn you
340
     that the rest of this step is untested. :(
341
342
     For each of the .msg files that were destined for the old list,
343
     you need to change the corresponding .db file.  Unfortunately
344
     there's no easy way to do this.  Anyway...
345
346
     Save the following Python code in a file called 'hackdb.py':
347
348
     -------------------------hackdb.py
349
     import sys
350
     import marshal
351
     fp = open(sys.argv[1])
352
     d = marshal.load(fp)
353
     fp.close()
354
     d['listname'] = sys.argv[2]
355
     fp = open(sys.argv[1], 'w')
356
     marshal.dump(d, fp)
357
     fp.close()
358
     -------------------------
359
360
     And then for each file that matched your grep above, do the
361
     following:
362
363
     % python hackdb.py reallylonghexfilenamematch1.db newname
364
365
   - It's now safe to turn your MTA back on.
366
367
   - Turn your qrunner back on by running
368
369
     % crontab -u mailman -e
370
371
     again and this time uncommenting the qrunner line.  Save the file
372
     and quit your editor.
373
374
   - Rejoice, you're done.  Send $100,000 in shiny new pennies to the
375
     Mailman cabal as your downpayment toward making this easier for
376
     the next list you have to rename. :)
377
378
379

380
Local Variables:
381
mode: text
382
indent-tabs-mode: nil
383
End: