annotate README.exim4 @ 887:3032cb926799 BRANCH_1_2_18

Added tag RELEASE_1_2_18_1 for changeset c1b22b049682
author Ben Schmidt
date Wed, 05 Feb 2014 17:14:22 +1100
parents dfc9ab125fd4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
495
c5e975579329 patch for warning people already subbed they are and same with unsub
mmj
parents: 473
diff changeset
1
497
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
2 README.exim4 May 7th 2005
473
185d935587ae Docu update
mmj
parents:
diff changeset
3
185d935587ae Docu update
mmj
parents:
diff changeset
4
497
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
5 This is a step-by-step guide to run mlmmj with Exim4. The most current version
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
6 of this can be found on http://plonk.de/sw/mlmmj/README.exim4.
473
185d935587ae Docu update
mmj
parents:
diff changeset
7
185d935587ae Docu update
mmj
parents:
diff changeset
8
185d935587ae Docu update
mmj
parents:
diff changeset
9
185d935587ae Docu update
mmj
parents:
diff changeset
10 Notes:
185d935587ae Docu update
mmj
parents:
diff changeset
11 - We assume that you have a user and group called mlmmj to use with mlmmj
543
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
12 - The exim user needs rx access rights to mlmmj's spool directory. (If you
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
13 don't want that, see below.) The easiest way is
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
14 "chmod 755 /path/to/mlmmj/spool", if it's ok that local users can see which
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
15 lists there are.
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
16 Note that the owner of the mlmmj spool must still be the mlmmj user (and
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
17 this user must have at least x rights to the directories below).
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
18 - Existence of mailing lists is automatically checked ($listdir) and you
497
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
19 don't need to put anything into your aliases file
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
20 - If you want VERP to be done by your MTA, follow the instructions below and
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
21 put an empty file named verp into the control directory of your lists
473
185d935587ae Docu update
mmj
parents:
diff changeset
22
185d935587ae Docu update
mmj
parents:
diff changeset
23
185d935587ae Docu update
mmj
parents:
diff changeset
24 1. In the main configuration section:
185d935587ae Docu update
mmj
parents:
diff changeset
25
185d935587ae Docu update
mmj
parents:
diff changeset
26 MLMMJ_HOME=/var/spool/mlmmj
543
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
27 domainlist mlmmj_domains = list.example.net
473
185d935587ae Docu update
mmj
parents:
diff changeset
28
185d935587ae Docu update
mmj
parents:
diff changeset
29
185d935587ae Docu update
mmj
parents:
diff changeset
30 2. Add +mlmmj_domains to relay_to_domains:
185d935587ae Docu update
mmj
parents:
diff changeset
31
185d935587ae Docu update
mmj
parents:
diff changeset
32 domainlist relay_to_domains = other.domain : +mlmmj_domains
185d935587ae Docu update
mmj
parents:
diff changeset
33
185d935587ae Docu update
mmj
parents:
diff changeset
34
497
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
35 3. mlmmj is barely interested in delay warnings, so add this in the main
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
36 configuration:
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
37
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
38 delay_warning_condition = ${if match_domain{$domain}{+mlmmj_domains}{no}{yes}}
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
39
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
40
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
41 4. In the routers section (before the dnslookup router, preferably at the
473
185d935587ae Docu update
mmj
parents:
diff changeset
42 beginning):
185d935587ae Docu update
mmj
parents:
diff changeset
43
185d935587ae Docu update
mmj
parents:
diff changeset
44 mlmmj_router:
185d935587ae Docu update
mmj
parents:
diff changeset
45 driver = accept
185d935587ae Docu update
mmj
parents:
diff changeset
46 domains = +mlmmj_domains
543
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
47 require_files = MLMMJ_HOME/${lc::$local_part}
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
48 # Use this instead, if you don't want to give Exim rx rights to mlmmj spool.
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
49 # Exim will then spawn a new process running under the UID of "mlmmj".
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
50 #require_files = mlmmj:MLMMJ_HOME/${lc::$local_part}
473
185d935587ae Docu update
mmj
parents:
diff changeset
51 local_part_suffix = +*
185d935587ae Docu update
mmj
parents:
diff changeset
52 local_part_suffix_optional
495
c5e975579329 patch for warning people already subbed they are and same with unsub
mmj
parents: 473
diff changeset
53 headers_remove = Delivered-To
c5e975579329 patch for warning people already subbed they are and same with unsub
mmj
parents: 473
diff changeset
54 headers_add = Delivered-To: $local_part$local_part_suffix@$domain
473
185d935587ae Docu update
mmj
parents:
diff changeset
55 transport = mlmmj_transport
185d935587ae Docu update
mmj
parents:
diff changeset
56
185d935587ae Docu update
mmj
parents:
diff changeset
57
497
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
58 If you want VERP to be done by your MTA, also add this:
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
59
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
60 verp_router:
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
61 driver = dnslookup
543
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
62 domains = !+mlmmj_domains
497
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
63 # we only consider messages sent in through loopback
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
64 condition = ${if eq{$sender_host_address}{127.0.0.1}{yes}{no}}
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
65 ignore_target_hosts = <; 0.0.0.0; 127.0.0.0/8; ::1/128; fe80::/10; ff00::/8
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
66 # only the un-VERPed bounce addresses are handled
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
67 senders = \N^.+\+bounces-\d+@.+\N
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
68 transport = verp_smtp
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
69
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
70
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
71 To prevent temporary errors for not-existing lists, add !+mlmmj_domains to the
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
72 domains condition of the dnslookup router:
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
73
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
74 dnslookup:
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
75 driver = dnslookup
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
76 domains = !+mlmmj_domains : !+local_domains
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
77 [...]
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
78
748
dfc9ab125fd4 Fix spelling of 'receive' and 'voodoo'; make mlmmj-recieve a symlink
Chris Webb
parents: 543
diff changeset
79 5. Somewhere in the transports section. (Change the path of mlmmj-receive if you
497
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
80 don't use the default location!):
473
185d935587ae Docu update
mmj
parents:
diff changeset
81
185d935587ae Docu update
mmj
parents:
diff changeset
82 mlmmj_transport:
185d935587ae Docu update
mmj
parents:
diff changeset
83 driver = pipe
185d935587ae Docu update
mmj
parents:
diff changeset
84 return_path_add
185d935587ae Docu update
mmj
parents:
diff changeset
85 user = mlmmj
185d935587ae Docu update
mmj
parents:
diff changeset
86 group = mlmmj
185d935587ae Docu update
mmj
parents:
diff changeset
87 home_directory = MLMMJ_HOME
185d935587ae Docu update
mmj
parents:
diff changeset
88 current_directory = MLMMJ_HOME
748
dfc9ab125fd4 Fix spelling of 'receive' and 'voodoo'; make mlmmj-recieve a symlink
Chris Webb
parents: 543
diff changeset
89 command = /usr/local/bin/mlmmj-receive -F -L MLMMJ_HOME/${lc:$local_part}
473
185d935587ae Docu update
mmj
parents:
diff changeset
90
497
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
91 If you want VERP to be done by your MTA, also add this:
473
185d935587ae Docu update
mmj
parents:
diff changeset
92
497
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
93 verp_smtp:
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
94 driver = smtp
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
95 # put recipient address into return_path
543
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
96 return_path = ${quote_local_part:${local_part:$return_path}}-\
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
97 ${original_local_part}=${original_domain}@\
e6565d2a4368 README.exim4 update from Jakob
mmj
parents: 497
diff changeset
98 ${domain:$return_path}
497
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
99 # must restrict to one recipient at a time
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
100 max_rcpt = 1
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
101 # Errors-To: may carry old return_path
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
102 headers_remove = Errors-To
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
103 headers_add = Errors-To: $return_path
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
104
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
105
293737f23ecf Add Subject: if none is present and prefix is wanted
mmj
parents: 495
diff changeset
106 6. Test your setup with
473
185d935587ae Docu update
mmj
parents:
diff changeset
107
185d935587ae Docu update
mmj
parents:
diff changeset
108 $ exim -bt mlmmj-test@your.list.domain
185d935587ae Docu update
mmj
parents:
diff changeset
109 mlmmj-test@your.list.domain
185d935587ae Docu update
mmj
parents:
diff changeset
110 router = mlmmj_router, transport = mlmmj_transport
185d935587ae Docu update
mmj
parents:
diff changeset
111
185d935587ae Docu update
mmj
parents:
diff changeset
112 If you get different output, run it with -d to see what's going wrong.
185d935587ae Docu update
mmj
parents:
diff changeset
113 If not, you're done!
185d935587ae Docu update
mmj
parents:
diff changeset
114
185d935587ae Docu update
mmj
parents:
diff changeset
115
185d935587ae Docu update
mmj
parents:
diff changeset
116
185d935587ae Docu update
mmj
parents:
diff changeset
117 Jakob Hirsch (jh at plonk dot de)
185d935587ae Docu update
mmj
parents:
diff changeset
118