[Mailman-Users] New Mailman Installation - Can't Send Email to aNew List (reformatted)
McJathan
mcjathan1 at xmission.com
Sat Nov 11 22:13:41 CET 2006
Mark (and anyone else who wants to jump in), my comments and questions
are below interspersed with the quotations. My previous email with HTML
formatting was stripped of most of the formatting. Hopefully this email
is better.
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
> <http://www.list.org/mailman-install/postfix-virtual.html>
>
I've quoted the entire web-page that you cite. My comments and
questions are interspersed.
> 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 aliases, and email from both
internal and external addresses seem to be delivered without problem to
all virtual and aliased domains.
> 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.
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,
hash:/usr/home/mailman/data/virtual-mailman
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 are:
VERSION=3
format=bytevalue
type=hash
db_pagesize=4096
HEADER=END
DATA=END
> 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
> virtual_alias_maps =
> hash:/some/path/to/virtual-dom1,
> hash:/some/path/to/virtual-dom2,
> hash:/some/path/to/virtual-dom2
Here is our setup:
myhostname = mail.domain1.net
mydomain = domain1.net
mydestination = $myhostname $mydomain
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual.cf,
hash:/usr/home/mailman/data/virtual-mailman
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:
>
> 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.
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
database:
From the table "alias" we have these entries:
alias (column title) destination (column title)
postmaster postmaster at domain1.net
root postmaster at domain1.net
From the table "transport" we have these entries:
domain (column title) destination (column title)*
domain1.net virtual:
domain2.net virtual:
domain3.com virtual:
From the table "virtual" we have these entries:
email (column title) destination (column title)
*domain1.net virtual:
*@alias1.com @domain2.net
*@alias2.com @domain2.net
*@alias3.com @domain2.net
*@alias4.info @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
POSTFIX_STYLE_VIRTUAL_DOMAINS=['domain1.net', 'domain2.net']
MTA='Postfix'
add_virtualhost('mail.domain1.net', 'domain1.net')
MAILMAN_SITE_LIST='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 |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?
Regards, Jeff
More information about the Mailman-Users
mailing list