Fwd: Re: [Mailman-Users] Virtual Domains
bug at aphid.net
Fri Jul 21 18:12:41 CEST 2000
Here are the excellent virtual domain instructions from David Sexton.
Someone should make a web page about this - (no not me! ;? )
Considering that it is so popular and all..
----- Forwarded message from David Sexton <david.sexton at sapphire.net> -----
Date: Wed, 08 Mar 2000 15:48:07 +0000
From: David Sexton <david.sexton at sapphire.net>
Subject: Re: [Mailman-Users] Virtual Domains
To: mailman-users at python.org
"Sergio A. Murillo" wrote:
> I've been trying to configure Mailman to work with a virtual domain on a web
> server with serveral virtual domains. I read William R. Dickson sugestion
> of installing a copy of mailman for each of the virtual domains.
> How do i do this?/?? I've been traying all week now and still no luck...
This is the way I have it done (I'm not 100% certain of the
security/reliability of this but it has worked so far):
I have one user set-up purely for mailman and mailman is
installed in that user's directory & web space. All the
administration for the lists are done through this one URL
(although it may be possible to put wrappers around this).
Onto the 'meat'...
I'm assuming that you have set up the mail aliases and virtual
user table in the following manner:-
list-<list-name>: "|wrapper post <list-name>"
list-<list-name>-admin: "|wrapper mailowner <list-name>"
list-<list-name>-request: "|wrapper mailcmd <list-name>"
To change the domain of the list, you would go into the admin
screen and change the host name of the list. This will allow you
to successfully set-up & use list1 at domain1.com &
list2 at domain2.com.
Is this perfect? No.
This would work until you needed two lists of the same 'name'
eg: announce at domain1.com and announce at domain2.com
A workaround for this is to embed the domain name into the list
name and create lists like the following:- domain1-com-announce
This now looks really clunky as the list would be at
domain1-com-announce at domain1.com etc.
But .. if you mangle the entries in virtusertable, incoming mail
virtusertable announce at domain1.com
list-domain1-com-announce announce at domain2.com
list-domain2-com-announce .. do a similar thing for the request
& admin etc. addresses.
aliases list-domain1-com-announce: "|wrapper post
domain1-com-announce" list-domain2-com-announce: "|wrapper
post domain2-com-announce" <etc. etc>
Now we're *almost* there. The addresses that mailman puts into
messages it sends out will contain the full list name
(domain2-com-announce at domain2) , not the short version you want.
Back in the mailman admin screens, there is a field that in the
public name of a list. It seems to indicate that mailman will
use this name when generating addresses but changing this only
does half the job.
I've hacked around a bit with MailList.py and got much better
reults. If you apply the attached patch and change the 'public
name' for the lists, it should work.
** NOTE ** I have very little experience of Python (I'm a perler
at heart) and almost no appreciation of the structure of Mailman
so I cannot guarrantee that these changes will not foul
everything up. The docs say that you should not change the
public name of a list and, although it is working so far, I am
not totally sure of the implications of this.
Hope this helps,
--- MailList.py Sat Oct 30 02:11:48 1999
+++ /home/sites/home/users/admin/MailList.py Thu Feb 3 08:55:24 2000
@@ -117,7 +117,7 @@
self.members[string.lower(addr)] = addr
- return '%s-admin@%s' % (self._internal_name, self.host_name)
+ return '%s-admin@%s' % (string.lower(self.real_name), self.host_name)
def GetMemberAdminEmail(self, member):
"""Usually the member addr, but modified for umbrella lists.
@@ -159,15 +159,15 @@
- return '%s-request@%s' % (self._internal_name, self.host_name)
+ return '%s-request@%s' % (string.lower(self.real_name), self.host_name)
- return '%s@%s' % (self._internal_name, self.host_name)
+ return '%s@%s' % (string.lower(self.real_name), self.host_name)
"""Return the unique (RFC draft-chandhok-listid-02) identifier."""
return ("%s <%s.%s>" %
- (self.description, self._internal_name, self.host_name))
+ (self.description, string.lower(self.real_name), self.host_name))
def GetRelativeScriptURL(self, script_name):
prefix = '../' * Utils.GetNestingLevel()
----- End forwarded message -----
[ charles hamilton dale <bug at aphid.net> ]
More information about the Mailman-Users