aboutsummaryrefslogtreecommitdiffstats
path: root/README.POSTFIX
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--README.POSTFIX198
1 files changed, 198 insertions, 0 deletions
diff --git a/README.POSTFIX b/README.POSTFIX
new file mode 100644
index 00000000..204fd26c
--- /dev/null
+++ b/README.POSTFIX
@@ -0,0 +1,198 @@
+Mailman - The GNU Mailing List Management System
+Copyright (C) 2001,2002 by the Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+
+GENERAL SETUP INFORMATION
+
+ Mailman should work pretty much out of the box with a standard
+ Postfix installation. As of this writing I've tested it with
+ Postfix 19991231 up to pl13, and with 200010228 up to pl08.
+
+ It is recommended that you set "owner_request_special = no" in
+ your main.cf config file so that Postfix won't treat -owner and
+ -request addresses specially (we want Postfix to simply deliver
+ such messages to the Mailman wrapper). The default is "yes" I
+ believe.
+
+ In order to support Mailman's optional VERP delivery, you will
+ want to disable luser_relay (the default) and you will want to set
+ recipient_delimiter for extended address semantics. Here, my
+ recommendations are to comment out any luser_relay value in your
+ main.cf and just go with the defaults. Also, set
+ "recipient_delimiter = +" so that the symbol used to separate an
+ address from its extended semantics is a + sign. This will work
+ well with the default values for VERP_FORMAT and VERP_REGEXP in
+ Defaults.py.
+
+ Finally, if you are using Postfix-style virtual domains, read the
+ section on virtual domain support below.
+
+
+INTEGRATING POSTFIX AND MAILMAN
+
+ You can integrate Postfix and Mailman such that when new lists are
+ created, or lists are removed, Postfix's alias database will be
+ automatically updated. The following are the steps you need to
+ take to make this work.
+
+ In the description below, we assume that you've installed Mailman
+ in the default location, i.e. /usr/local/mailman. If that's not
+ the case, adjust the instructions according to your use of
+ configure's --prefix and --with-var-prefix options.
+
+ - If you are using Postfix-style virtual domains and you want
+ Mailman to honor your virtual domains, read the section below
+ first!
+
+ - Add this to the bottom of the $prefix/Mailman/mm_cfg.py file:
+
+ MTA = 'Postfix'
+
+ The MTA variable names a module in Mailman/MTA which contains the
+ MTA-specific functions to be executed when a list is created or
+ removed.
+
+ - Look at the Defaults.py file for the variables POSTFIX_ALIAS_CMD
+ and POSTFIX_MAP_CMD command. Make sure these point to your
+ postalias and postmap programs respectively.
+
+ - Run the genaliases script to initialize your aliases file.
+
+ % cd /usr/local/mailman
+ % bin/genaliases
+
+ Make sure that the owner of the data/aliases and data/aliases.db
+ file is `mailman' and that the group owner for those files is
+ `mailman'. E.g.:
+
+ % su
+ % chown mailman:mailman data/aliases*
+
+ - Hack your Postfix's main.cf file to include the following path
+ in your alias_maps variable:
+
+ /usr/local/mailman/data/aliases
+
+ (no trailing .db). Do not include this in your alias_database
+ variable. This is because you do not want Postfix's newaliases
+ command to modify Mailman's aliases.db file, but you do want
+ Postfix to consult aliases.db when looking for local addresses.
+
+ You probably want to use a hash: style database for this entry.
+ Here's an example:
+
+ alias_maps = hash:/etc/postfix/aliases,
+ hash:/usr/local/mailman/data/aliases
+
+ - When you configure Mailman, use the --with-mail-gid=mailman
+ switch (actually, this will be the default if you configured
+ Mailman after adding the `mailman' owner). Because the owner of
+ the aliases.db file is `mailman', Postfix will execute Mailman's
+ wrapper program as uid and gid mailman.
+
+ That's it! One caveat: when you add or remove a list, the
+ aliases.db file will updated, but it will not automatically run
+ "postfix reload". This is because you need to be root to run this
+ and suid-root scripts are not secure. The only effect of this is
+ that it will take about a minute for Postfix to notice the change
+ to the aliases.db file and update its tables. I consider this a
+ minor inconvenience.
+
+
+VIRTUAL DOMAINS
+
+ Postfix supports two styles of virtual domains, called
+ "Postfix-style" and "Sendmail-style". With the latter, all
+ aliases are visible in all domains, and nothing special need be
+ done with Mailman.
+
+ With Postfix-style virtual domains, things are a little trickier,
+ although Mailman should work well with it. First, you'll need to
+ add a path to Postfix's virtual_maps variable:
+
+ virtual_maps = <your normal virtual files>,
+ hash:/usr/local/mailman/data/virtual-mailman
+
+ assuming you've installed Mailman in the default location. Note
+ that you must follow Postfix's instructions for setting up the
+ virtual domains; get your virtual domains working in Postfix
+ first before integrating Mailman.
+
+ Next, in your mm_cfg.py file, you will want to set the variable
+ POSTFIX_STYLE_VIRTUAL_DOMAINS to the list of virtual domains that
+ Mailman should update. This may not be all of the virtual domains
+ that your Postfix installation supports! The values in this list
+ will be matched against the host_name attribute of mailing lists
+ objects, and must be an exact match.
+
+ Here's an example:
+
+ Let's say I've set up Postfix to handle the virtual domains
+ dom1.ain, dom2.ain, and dom3.ain. Let's say further that in
+ main.cf you've got the following settings:
+
+ myhostname = mail.dom1.ain
+ mydomain = dom1.ain
+ mydestination = $myhostname, localhost.$mydomain
+ virtual_maps = hash:/some/path/to/virtual-dom1,
+ hash:/some/path/to/virtual-dom2,
+ hash:/some/path/to/virtual-dom2
+
+ Let's say further that in virtual-dom1, you've got the following
+ lines:
+
+ dom1.ain IGNORE
+ @dom1.ain @mail.dom1.ain
+
+ This tells Postfix to deliver anything addressed to dom1.ain to
+ the same mailbox at mail.dom1.com, it's default destination.
+
+ In this case you would not include dom1.ain in
+ POSTFIX_STYLE_VIRTUAL_DOMAINS because otherwise Mailman will write
+ entries for mailing lists in the dom1.ain domain as
+
+ mylist@dom1.ain mylist
+ mylist-request@dom1.ain mylist-request
+ # and so on...
+
+ The more specific entries trump your more general entries and thus
+ breaking the delivery of any dom1.ain mailing list.
+
+ However, you would include dom2.ain and dom3.ain in mm_cfg.py:
+
+ POSTFIX_STYLE_VIRTUAL_DOMAINS = ['dom2.ain', 'dom3.ain']
+
+ Now, any list that Mailman creates in either of those two domains,
+ will have the correct entries written to
+ /usr/local/mailman/data/virtual-mailman
+
+ As above with the data/aliases* files, you want to make sure that
+ both data/virtual-mailman and data/virtual-mailman.db are user and
+ group owned by the `mailman' user/group. So to get things
+ started, set up your virtual domains, run bin/genaliases, and
+ check the ownerships of the files. From here on out, you should
+ be good to go.
+
+
+AN ALTERNATIVE APPROACH
+
+ Fil <fil@rezo.net> has an alternative approach based on virtual
+ maps and regular expressions, as described at:
+
+ (French) http://listes.rezo.net/comment.php
+ (English) http://listes.rezo.net/how.php
+
+ This is a good (and simpler) alternative if you don't mind
+ exposing an additional hostname in the domain part of the
+ addresses people will use to contact your list. I.e. if people
+ should use mylist@lists.dom.ain instead of mylist@dom.ain.
+
+ I have not extensively tested this approach however.
+
+
+
+Local Variables:
+mode: text
+indent-tabs-mode: nil
+End: