root/doc/FAQ.txt

Revision 303:6f57b7328cb8, 8.5 KB (checked in by Anselm Lingnau <anselm@…>, 9 months ago)

The Great Renaming: Change all command names to 'pl-*' and directory to '.pl'.
The idea behind this is to emphasise that the software is called ?*Project*
Lancelot? as opposed to plain ?Lancelot?. There is apparently a KDE tool that
goes by the name of ?Lancelot?, and we want to make clear that this is separate
and different. Also, Project Lancelot has been around for a lot longer!

Line 
1= Project Lancelot FAQ =
2
3(or, rather, questions likely to be frequently asked if anybody would
4actually use the software except myself)
5
6== Project Lancelot Meta-Information ==
7
8'''Q.''' Where do I get Project Lancelot?
9
10The official Project Lancelot web site is at
11http://lancelot.anselms.net/ . This contains the software (both
12ready-made releases as well as the master revision control repository,
13available through Mercurial), documentation, a timeline, roadmap and
14bug-tracking system.
15
16We're working on getting Project Lancelot integrated into the Debian
17GNU/Linux distribution but there is no timeframe for this yet.
18
19'''Q.''' Why the funny name?
20
21'''A.''' If you think »Project Lancelot« is funny you must not have
22heard of that other mailing list manager which is called »Enemies of
23Carlotta« :^)
24
25The name came up when we were talking about starting the project. I
26had recently been reading T. H. White's »The Once and Future King« to
27my SO, and it occurred to me that mailing list management as a field
28of endeavour was in dire need of a knight riding in to slay all the
29dragons and free all the damsels in distress. Of course for all the
30nobility this is ultimately futile (we're not going to replace Mailman
31anytime soon), hence Lancelot. I could have called it Don Quixote but
32that name is already spoken for.
33
34
35== Project Lancelot Configuration ==
36
37'''Q.''' How do I conveniently transfer settings from one list to
38another?
39
40'''A.''' You can initialise a new list from the settings of an
41existing list using
42{{{
43  $ pl-init --clone=oldlist@example.com newlist@example.com admin@example.com
44}}}
45This will use the configuration settings from ''oldlist@example.com''
46except for the '''list.name''', '''list.address''', and
47'''list.owneraddress''' parameters, which are set as for a new
48list. The details are in pl-init(1). It is also possible to override
49individual items when cloning a list, by giving them on the command
50line as usual.
51
52Once a list has been created, a nifty way of transferring (groups of)
53configuration items is by doing
54{{{
55  $ pl-conf -q oldlist@example.com PATTERN | pl-conf -i newlist@example.com
56}}}
57where PATTERN is something like ''digest.*'' (to transfer all digest
58settings).
59
60
61== Project Lancelot and MTAs ==
62
63'''Q.''' How do I let users manage their own mailing lists without
64involving the mail administrator?
65
66Project Lancelot stores mailing list meta-information in a user's home
67directory, and therefore there is no problem with this in
68principle. The main problem is actually getting mail for a new mailing
69list into pl-incoming(1) without having the mail administrator edit an
70aliases file (or similar). How to do this depends on the system's
71MTA.
72
73It's probably easiest if you're running Qmail; for a list called,
74say ''jdoe-list@example.com'', the user ''jdoe'' simply puts a
75''.qmail-list-default'' file into their home directory that redirects
76all mail into pl-incoming(1) (some translation of return codes may be
77necessary).
78
79With Postfix, the problem is that while one can use a
80''recipient_delimiter'' like ''+'' to handle addresses like
81''jdoe+list@example.com'' by means of a ''.forward+list'' file in
82''jdoe'''s home directory, it is impossible to foresee all adresses of
83the form ''jdoe+list-bounce-4711-anselm=anselms.net@example.com''
84which might arise through normal mailing list operations and would
85have to be handled through their own ''.forward'' files. It is
86probably best to use an MDA on steroids like Procmail or Mailfilter to
87funnel all messages whose address extensions start with a list name to
88the pl-incoming(1) command, e.g. (for Procmail),
89{{{
90  :0 H : list.lock
91  ^TOjdoe+list
92  |/usr/bin/pl-incoming list@example.com
93}}}
94If you're handling mail for many different domains, a more convenient
95way may be to use Postfix's ''virtual_mailbox_domains'' together with
96an MDA like Mailfilter (Postfix's virtual(8) delivery method is
97insufficient because it does not allow delivery to user-specified
98programs).
99
100'''Q.''' What is this VERP thing and why would I want to use it?
101
102'''A.''' VERP, or Variable Envelope Return Path, is a method of
103finding out which bounce messages came from which subscribing
104address. While the subscriber address is often obvious from a bounce
105message, this is not always the case -- people move to new addresses
106and get their mail forwarded from their old accounts, but do not
107bother to change all their mailing list subscription. Hence Project
108Lancelot may be sending a message to ''jdoe@example.com'', whose owner
109may long since have moved to ''john.doe@elsewhere.net'', getting all his
110mail sent on from ''example.com'' to there. If the ''elsewhere.net''
111address develops a problem, a bounce will be sent to Project Lancelot
112from the ''john.doe@elsewhere.net'' address, which Project Lancelot will
113not be able to find in the subscriber database, since the subscription
114is still in the name of ''jdoe@example.com''.
115
116VERP works by encoding the original subscriber address into the SMTP
117envelope return path, which is the address that a receiving MTA uses
118for bounce messages. Instead of putting something like
119{{{
120  MAIL FROM:<lancelot+bounce@anselms.net>
121}}}
122in a message for ''jdoe@example.com''
123(which would direct all bounces to ''lancelot+bounce@example.com'',
124with no obvious sign of which subscriber address caused the bounce),
125Project Lancelot uses
126{{{
127  MAIL FROM:<lancelot+bounce-1234-jdoe=example.com@anselms.net>
128}}}
129Thus, bounce messages are sent to this address, which Project Lancelot
130can pick apart to reconstruct that this bounce was caused by a message
131to ''jdoe''. (The ''1234'' is the message number, which for now is duly
132recorded when the bounce is processed, but not used further.)
133
134'''Q.''' Isn't VERP terribly expensive?
135
136It depends. If you have lots of subscribers at the same domain (say,
137''aol.com''), then without VERP you could send one copy of your
138message to that domain's mail server, with instructions to deliver
139that copy to all of the subscribers there. With VERP, you have to send
140one message per subscriber, which of course seems wasteful. However,
141for many of us robustness is preferable to speed, so with the costs of
142Internet bandwidth being what they are, being able to trace errors is
143often worth the extra traffic.
144
145Project Lancelot supports two different flavours of VERP, according to
146the value of the '''smtp.verp''' parameter. The first (called
147'''lancelot''') lets Project Lancelot do all the work by itself. This
148means that, for a mailing list with N subscribers, it sends N copies
149of every message to the local MTA, each with the correct VERP
150address. The second (called '''smtp''') makes use of the ''XVERP''
151ESMTP extension to let the local MTA do the VERPing. This means that
152Project Lancelot sends the message to the local MTA with a bunch of up
153to '''smtp.maxrecipients''' subscriber addresses at one go (thus for N
154subscribers, only N/('''smtp.maxrecipients'''+1) messages are
155submitted locally), and the local MTA passes them on with the correct
156VERP-encoded addresses. This is preferable because it puts less load
157on the local MTA. If Project Lancelot is set up for '''smtp'''-style
158VERP and it finds that the local MTA does not support the ''XVERP''
159extension, it falls back to '''lancelot'''-style VERP. Therefore it is
160usually safe to set '''smtp.verp = smtp''' even if you do not know for
161sure whether your local MTA supports it or not.
162
163'''Q.''' How do I find out whether my MTA supports XVERP?
164
165Read the documentation :^) If you're more of a hands-on type person,
166you could try something along the lines of
167{{{
168  $ telnet localhost smtp              <<< contact the local MTA
169  Trying 127.0.0.1...
170  Connected to mail.example.com.
171  Escape character is '^]'.
172  220 mail.example.com ESMTP
173  EHLO mail.example.com                <<< introduce yourself
174  250-mail.example.com
175  ... (a bunch of "250-" lines) ...
176  250-XVERP                            <<< this line must be there
177  ... (possibly more "250-" lines) ...
178  250 8BITMIME                         <<< or whatever
179}}}
180If the output of your MTA in answer to the '''EHLO''' command does not
181contain a line saying '''XVERP''', then your MTA does not support the
182extension.
183
184''Note for Postfix users:'' Postfix does support the ''XVERP''
185extension but, beginning with Postfix 2.1, it must be specially
186enabled. In the Postfix ''main.cf'' file, set the
187'''smtpd_authorized_verp_clients''' parameter to include the address
188and/or network of the machine running Project Lancelot. In the usual
189case of Project Lancelot running on the same machine as your MTA,
190something like
191{{{
192  smtpd_authorized_verp_clients = 127.0.0.1/8
193}}}
194is fine.
Note: See TracBrowser for help on using the browser.