[Mailman-Users] New Mailman Installation - Can't Send Email to aNew List
mcjathan1 at xmission.com
Sat Nov 11 20:59:30 CET 2006
Mark (and anyone else who wants to jump in), my comments and questions
are below in *bolded blue.*
Mark Sapiro wrote:
> mcjathan wrote:
>> 1) Is our inability to send email to the lists due to the fact that the
>> virtual db files aren't being populated?
> Maybe. Have you set up POSTFIX_STYLE_VIRTUAL_DOMAINS in mm_cfg.py per
*Here is the text from the web-page that you reference (below) My
comments and questions will be interspersed in bolded blue.*
6.1.2 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. You are highly encouraged to make sure your virtual
alias domains are working properly before integrating with Mailman.
*I stepped through http://www.postfix.org/virtual.5.html and we seem to
have everything setup properly. As a practical observation, we have 2
virtual domain aliases each with multiple aliased and email from both
internal and external addresses seem to be delivered without problem.*
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>,
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.
*From our Postfix main.cf file I checked the virtual_alias_maps entry.
Here is our actual entry:
*virtual_alias_maps = mysql:/etc/postfix/mysql-virtual.cf,
*The mysql-virtual.cf file contains (among other entries):
*table = virtual
select_field = destination
where_field = email
*The virtual-mailman file exists but is completely empty (zero bytes).
In the same directory, there is also a file named virtual-mailman.db.
Using the command "**db4.2_dump virtual-mailman.db", the contents on the
db file is:*
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. Say that Postfix is configured to handle the virtual
domains |dom1.ain|, |dom2.ain|, and |dom3.ain|, and further that in your
main.cf file you've got the following settings:
myhostname = mail.dom1.ain
mydomain = dom1.ain
mydestination = $myhostname, localhost.$mydomain
*Here is our setup:
*myhostname = mail.domain1.net
mydomain = domain1.net
mydestination = $myhostname $mydomain
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual.cf,
*Again, the **mysql-virtual.cf file seems to be properly setup because
email sent to the virtual and aliased domains seems to work fine. Also
again, however, the virtual-mailman and virtual-mailman.db files are empty.
If in your virtual-dom1 file, you've got the following lines:
this tells Postfix to deliver anything addressed to |dom1.ain| to the
same mailbox at |mail.dom1.com|, its default destination.
This is where I get a bit lost, but I'll try to muddle through. We
don't actually have the virtual-domain1 file since we've implemented
Postfix using mySQL. Here are some possibly relevant entries from the
*From the table "alias" we have these entries:
*alias (column title)
* *destination (column title)
* *postmaster at domain1.net
* *postmaster at domain1.net
*From the table "transport" we have these entries:
*domain (column title)* *destination (column title)*
*From the table "virtual" we have these entries:
*email (column title)* *destination (column title)*
*domain1.net * *virtual:*
*@alias3.com * *@domain2.net*
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 at dom1.ain mylist
mylist-request at 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.
*I'm completely lost here.*
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.
*Here are the entries from our mm_cfg.py file:
*from Defaults import *
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 |mailman|.
*Here are the permissions of all files in the mailman/data/ directory:
*-rw-r----- 1 root mailman 41 Oct 18 16:20 adm.pw
-rw-rw---- 1 mailman mailman 3438 Nov 9 13:53 aliases
-rw-rw---- 1 mailman mailman 12288 Nov 9 13:53 aliases.db
-rw-r----- 1 root mailman 41 Oct 18 16:20 creator.pw
-rw-r--r-- 1 root mailman 10 Oct 18 15:05 last_mailman_version
-rw-rw---- 1 mailman mailman 6 Oct 18 16:14 master-qrunner.pid
-rw-r--r-- 1 root mailman 14114 Nov 3 00:44 sitelist.cfg
-rw-rw-r-- 1 mailman mailman 0 Nov 9 13:53 virtual-mailman
-rw-rw-r-- 1 mailman mailman 12288 Nov 9 13:53 virtual-mailman.db
*Whew! That's a lot of information. Is any of it useful? Can you
suggest some corrections to our configuration?
More information about the Mailman-Users