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: |