diff options
Diffstat (limited to 'README.POSTFIX')
-rw-r--r-- | README.POSTFIX | 222 |
1 files changed, 0 insertions, 222 deletions
diff --git a/README.POSTFIX b/README.POSTFIX deleted file mode 100644 index d5da5d57..00000000 --- a/README.POSTFIX +++ /dev/null @@ -1,222 +0,0 @@ -Mailman - The GNU Mailing List Management System -Copyright (C) 2001-2004 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, 200010228 up to pl08, and up to - Postfix 2.0.15. - - By default, Postfix treats -owner and -request addresses - specially. Since we want Postfix to deliver such messages to - Mailman, you should turn off this option by adding this to your - main.cf file: - - owner_request_special = no - - 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. You should - comment out any luser_relay value in your main.cf and just go with - the defaults. Also, add this to your main.cf file: - - recipient_delimiter = + - - Using + as the delimiter works well with the default values for - VERP_FORMAT and VERP_REGEXP in Defaults.py. - - When attempting to deliver a message to a non-existent local address, - Postfix may return a 450 error code. Since this is a transient error - code, Mailman will continue to attempt to deliver the message for - DELIVERY_RETRY_PERIOD (5 days by default). You might want to set Postfix - up so that it returns permanent error codes for non-existent local users - by adding the following to your main.cf file: - - unknown_local_recipient_reject_code = 550 - - 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 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. Remember that if - you need to make changes, do it in mm_cfg.py. - - - 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 2.0 supports "virtual alias domains", essentially what - used to be called Postfix-style virtual domains in earlier Postfix - versions. To make virtual alias domains work with Mailman, you - need to do some setup in both Postfix and Mailman. Mailman will - write all virtual alias mappings to a file called, by default, - /usr/local/mailman/data/virtual-mailman. It will also use postmap - to create the virtual-mailman.db file that Postfix will actually - use. - - First, you need to set up the Postfix virtual alias domains as - described in the Postfix documentation (see Postfix's virtual(5) - manpage). Note that it's your responsibility to include the - "virtual-alias.domain anything" line as described manpage; Mailman - will not include this line in virtual-mailman. I highly encourage - you to make sure your virtual alias domains are working properly - before integrating with Mailman. - - Next, add a path to Postfix's virtual_alias_maps variable, - pointing to the virtual-mailman file, e.g.: - - virtual_alias_maps = <your normal virtual alias files>, - hash:/usr/local/mailman/data/virtual-mailman - - assuming you've installed Mailman in the default location. If - you're using an older version of Postfix which doesn't have the - virtual_alias_maps variable, use the virtual_maps variable - instead. - - 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 alias - 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_alias_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, its 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, 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: |