Mailman

A while ago Chris W and I had a discussion on the Sago forums about the possibility of running the Mailman mailing list server on an Interworx box. He indicated that he thought it would probably work. It doesn’t.

I requested that Sago do this for me (installing from source because the RPM wants Postfix MTA and the newest version isn’t of Mailman isn’t available for RH9 in RPM format.

I would just like to let you know that this apparently does not work. One of their Senior Linux admin’s has been working on it when he has time off and on for close to a month. He belives that the problem is with that vPOPMail and Mailman daemon are not communicating properly.

I just thought that I’d let you know (no, I’m not mad; just a little disapointed).

I am reiterating my previous request that future versions of Interworx support alternate MTA’s – specifically Postfix.

Thanks for reading

Tim

Hi Tim,

I disagree that it isn’t possible. That’s not to say it isn’t tricky though.
I have successfully installed mailman on a server running Qmail + Vpopmail, as InterWorx-CP does. That’s NOT to say that I have installed mailman on an InterWorx-CP server. I haven’t tried yet.

I can tell you, when I was successful, I did it using this recipe:
http://nav.bandersnatch.org/clues/qmail-vpopmail-mailman.html

You may be correct, perhaps all hope is lost. But I’m not convinced, at least not yet. I’m going to fiddle around with it and see if I can come up with an InterWorx-CP specific recipe to get this working.

Stay tuned…

Paul

Thank you for your prompt and timely response to this. I will share this with Chris M at Sago and see if it helps him (most of it appears to be above my head).

I will let you know if it does.

Tim

I’ve written a bash script that will successfully get mailman installed on an InterWorx server.

DISCLAIMER: This is ONE way to do it. There may be other, better ways. This in no way implies that we provide support for mailman. There isn’t even a guarantee that it will work if you use this script. You only get the “it worked for me” guarnatee. There is no offical support for this script. It is very possible that InterWorx-CP will offically support mailman in the future. There is no guarantee that it will be done the same way as it is done in this script.

This script assumes several things.

  • You are comfortable running scripts in a linux environment

  • You know how to edit and save text files in a linux environment

  • You have root access to your server

  • Using this script, you’ll end up with a mailman installation available at http://lists.domain.com/mailman/admin

  • The lists.domain.com name points to the same IP address as the parent “domain.com

  • It assumes there is a SiteWorx account created on the server that you want this mailman setup to be associated with.

  • It assumes that the subdomain “lists.domain.com” is DNS’d and already working, where domain.com is actually the main SiteWorx account domain. The script won’t complete unless it can resolve lists.domain.com

For example, if the main domain on your SiteWorx account was “yourdomain.com”, the first step is to get lists.yourdomain.com DNS’d and resolving. You could add this as a subdomain in SiteWorx, or add a CNAME record under DNS Management in NodeWorx. Then you must wait until the name lists.yourdomain.com is resolving to the IP address.

Then, log into your server as root, and

  1. Get the script:
    wget http://updates.interworx.info/scripts/mailman.sh
  2. Run the script:
    sh mailman.sh yourdomain.com

The script will complain if it can’t resolve lists.domain.com, and quit. Otherwise it will occasionally print out notices and ask you to enter things like password settings, etc.

Follow all instructions the script gives you, and you should be able to create mailman lists for the domain “lists.yourdomain.com”.

Paul

Thanks Paul, I will pass this on to Chris M.

Mailman ERROR

I’ve used this script to install mailman on the domain transwarplists.net

When I visit http://www.transwarplists.net

I get the standard Apache server root page (not the SiteWorx start page, even though I hace verified that I hacve index.html 1.gif 2.gif. 3.gif in their usueal places.

When I load lists.transwarplists.net I get the following:

<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don’t have permission to access /
on this server.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
<hr />
<address>Apache/2.0.40 Server at lists.transwarplists.net Port 80</address>
</body></html>

When I load lists.transwarplists.net/mailman I get

Access forbidden!

You don't have permission to access the requested directory. There is either no index document or the directory is read-protected. 

If you think this is a server error, please contact the webmaster 

Error 403

www.transwarplists.net
Thu 17 Jun 2004 11:00:34 PM EDT
Apache/2.0.40 (Red Hat Linux)

When I load lists.transwarplists.net/mailman/admin I get:

Server error!

The server encountered an internal error and was unable to complete your request. 

Error message:
Premature end of script headers: admin 

If you think this is a server error, please contact the webmaster 

Error 500

www.transwarplists.net
Thu 17 Jun 2004 11:01:56 PM EDT
Apache/2.0.40 (Red Hat Linux)

Any idea what I’ve done wrong?

Here is my transwarplists.net.conf file

<VirtualHost 65.110.52.171:80>

SuexecUserGroup transwa2 transwa2

DocumentRoot /home/transwa2/transwarplists.net/html
ServerName lists.transwarplists.net

ServerAlias ftp.transwarplists.net lists.transwarplists.net www.transwarplists.net
ServerAdmin webmaster@transwarplists.net
DocumentRoot /home/mailman/transwarplists.net
Alias /pipermail/ /home/mailman/transwarplists.net/archives/public/
ScriptAlias /mailman/ /home/mailman/transwarplists.net/cgi-bin/
ErrorLog /home/mailman/transwarplists.net/logs/error_log

subdomain logic

RewriteEngine On
RewriteOptions inherit
RewriteCond %{HTTP_HOST} !^www.transwarplists.net [NC]
RewriteCond %{HTTP_HOST} !^transwarplists.net [NC]
RewriteCond %{HTTP_HOST} ^([A-Z0-9a-z-]+).transwarplists.net [NC]
RewriteCond %{DOCUMENT_ROOT}/%1 -d
RewriteRule ^(.+) %{HTTP_HOST}/$1 [C]
RewriteRule ^([0-9A-Za-z-]+).transwarplists.net/?(.*)$ %{DOCUMENT_ROOT}/$1/$2 [L]

end subdomain logic

ErrorLog /home/transwa2/var/transwarplists.net/logs/error.log
CustomLog /home/transwa2/var/transwarplists.net/logs/transfer.log combined

php_admin_flag engine On

cgi: 1

<Directory /home/transwa2/transwarplists.net/html>
AllowOverride AuthConfig FileInfo Options Limit Indexes
</Directory>

ScriptAlias /cgi-bin/ /home/transwa2/transwarplists.net/html/cgi-bin/

</VirtualHost>

YES, I restarted httpd

Tim

It looks to me like there was some confusion with the very last step.

<VirtualHost 65.110.52.171:80>
ServerName lists.transwarplists.net

ServerAdmin postmaster
DocumentRoot /home/mailman/transwarplists.net
Alias /pipermail/ /home/mailman/transwarplists.net/archives/public/
ScriptAlias /mailman/ /home/mailman/transwarplists.net/cgi-bin/
ErrorLog /home/mailman/transwarplists.net/logs/error_log
</VirtualHost>

This whole block needs to be on it’s own ABOVE the large virtualhost block, and not munged together into the one big vhost, like it is in your example.

So the file should look something like:

<VirtualHost 65.110.52.171:80>

ServerName lists.transwarplists.net

ServerAdmin postmaster
DocumentRoot /home/mailman/transwarplists.net
Alias /pipermail/ /home/mailman/transwarplists.net/archives/public/
ScriptAlias /mailman/ /home/mailman/transwarplists.net/cgi-bin/
ErrorLog /home/mailman/transwarplists.net/logs/error_log

</VirtualHost>

<VirtualHost 65.110.52.171:80>

SuexecUserGroup transwa2 transwa2

DocumentRoot /home/transwa2/transwarplists.net/html
ServerName transwarplists.net

ServerAlias ftp.transwarplists.net transwarplists.net www.transwarplists.net
ServerAdmin webmaster@transwarplists.net

subdomain logic

RewriteEngine On
RewriteOptions inherit
RewriteCond %{HTTP_HOST} !^www.transwarplists.net [NC]
RewriteCond %{HTTP_HOST} !^transwarplists.net [NC]
RewriteCond %{HTTP_HOST} ^([A-Z0-9a-z-]+).transwarplists.net [NC]
RewriteCond %{DOCUMENT_ROOT}/%1 -d
RewriteRule ^(.+) %{HTTP_HOST}/$1 [C]
RewriteRule ^([0-9A-Za-z-]+).transwarplists.net/?(.*)$ %{DOCUMENT_ROOT}/$1/$2 [L]

end subdomain logic

ErrorLog /home/transwa2/var/transwarplists.net/logs/error.log
CustomLog /home/transwa2/var/transwarplists.net/logs/transfer.log combined

php_admin_flag engine On

cgi: 1

<Directory /home/transwa2/transwarplists.net/html>
AllowOverride AuthConfig FileInfo Options Limit Indexes
</Directory>

ScriptAlias /cgi-bin/ /home/transwa2/transwarplists.net/html/cgi-bin/

</VirtualHost>

Thanks, Paul.

I replaced my existing file witht he one you pasted above and things seemed to be working until I tried to fill out the form at:

http://lists.transwarplists.net/mailman/create

and got the error message:

Error: Unknown virtual host: lists.transwarplists.net

My thought is that it may be a propogation issue but I wonder why that would be since lists.transwarplists.net clearly exists.

Any ideas?

Tim

When I began looking around at my server settings I discovered dns records for an ns3.transwarplists.net a name server that I never registered (I did ns1 and ns2 back in late January). I’m not sure if I put it in there by mistake or if a well meaning Sago staffer did when they had access to my system (it was probably me, though).

I removed that record from the Nodeworx settings screen and from the individual domain transwarplists.net in case that is the problem.

In the meantime I’ve registered the server ns3.transwarphosting.net since I am too lazy to remove it from the 20+ domains on my server.

Do you think this may have had something to do with the problem above?

I don’t think DNS has anything to do with it Tim.

Take a look in your /home/mailman/transwarplists.com/Mailman/mm_cfg.py

Near the bottom, see what it says for the add_virtualhost line.

Without poking with the install I’m not sure where else to check off hand.

Paul

Paul,

You’re a GENIUS! You hit the nail right on the head.

All the refferences to the virtual domain in the file said lists.transwarplists.net.com

There must have been a glitch in the installer.

Thanks for all of your help. I’ve successfully created several lists so far and things seem to be running smoothly.

Whatever they’re paying you it isn’t enough!

Tim

I forgot to tell you, the version I installed was the newer one than the one you did when you did the script. I just edited the version number in the script in about 5 places it was listed and it worked like a charm.

Great, glad it’s working for you now Tim. I’ve updated the mailman.sh script to use the latest mailman version (2.1.5) and I fixed the “.com” problem that was the source of your “virtualhost doesn’t exist” problem as well.

Paul

This looks like exactly what I need but I have an issue:

[root@server1 root]# host lists.braidsbybreslin.com
lists.braidsbybreslin.com is an alias for braidsbybreslin.com.
braidsbybreslin.com has address 65.110.59.27
[root@server1 root]# sh mailman.sh braidsbybreslin.com
This script will install mailman for one domain. It will install it on lists.braidsbybreslin.com.
Mailman will be downloaded, configured, compiled, and installed.
If this sounds ok, hit <enter>. Otherwise, <ctrl-c>.

Please wait…
mailman.sh: line 21: service: command not found
You can not continue until lists.braidsbybreslin.com resolves to valid IP address on this server.

This script needs to be run as root - can you confirm whether you’re already running it as root or not?

Thanks,
Paul

I was running it as root.

I don’t think service is anywhere in my path. How do I add /sbin/ to my path?

Also, other than the subdomain do I need to create anything else?

export PATH=$PATH:/sbin

This will put /sbin in your path. Do that, then try running the mailman script again.

Paul

Paul,

I know that when you use qmail for mailman you have to create the listname alisas by hand (says so in the documentation, and creating the lists did not create the aliases automatically). My question is, where should the alisa lead?

mailman@lists.transwarplists.net or transwarplists.net (mailboxes that do not exist according to SiteWorx)

Or, since Mailman is a system user:

mailman@rhl.transwarphosting.net (my machine’s name) or mailman@65.110.52.170 (the prime IP of the mahcine) or 171 (the IP address the domain is on).

Thanks

Actually for a particular list, you should just be able to send mail to

<listname>@lists.transwarplists.net

That that should be it.

If you’re talking about an alias such that <listname>@transwarplists.net (without the lists. in the domain), it should point to <listname>@lists.transwarplists.net.

Paul

Okay. On an RH9 box running InterWorx what is the equivalent to /etc/aliases?