== Copy-Paste HowTo For qmail with ezmlm for Mailing List Management ==
Tested on Ubuntu
Note: This is not MY work, I am just readapting a tutorial from [[http://www.qmailrocks.org/checklist.php|qmailrocks.org]]
Note2: This is a bad tutorial and use it at your own risk... It is mainly done in NOTE FORM and there is not much explenation of WHAT is being done... I suggest you refer to [[http://www.qmailrocks.org/|qmailrocks.org]] for the complete version :-)
=== WORK IN PROGRESS ===
Install packages
{{{
apt-get install apache2 php5 mysql-server phpmyadmin php5-mysql php5-cgi gcc g++ libc6-dev libc-dev libmudflap0-dev sudo make openssl libssl-dev patch patchutils
}}}
If you are asking why gcc AND g++, here is the answer: <
>
g++ i figured is required for Maildrop which is one of the steps in this tutorial
Remove the following Packages
* Postfix - uninstall it or disable it
* Any POP service - This includes Qpopper or any POP service that may be running out of xinetd. If your're server has a POP service running, you will need to disable it.
* Any SMTP services
* It's ok to have Sendmail installed, because we'll uninstall it during the qmail installation.
Perl Modules Needed:
* Digest::SHA1
* Digest::HMAC
* Net::DNS
* Time::HiRes
* HTML::Tagset
* HTML::Parser
Firewall ports to be opened:
* Outbound ports (tcp)
* 25 - SMTP
* 110 - POP services
* 143 - IMAP
* 783 - Spamassassin
* 993 - IMAPS
* Inbound Ports (tcp)
* 25 - SMTP
* 80 - HTTP
* 110 - POP services
* 143 - IMAP
* 443 - HTTPS
* 783 - Spamassassin
* 993 - IMAPS
{{{
mkdir /downloads
cd /downloads
wget http://www.qmailrocks.org/downloads/qmailrocks.tar.gz
tar zxvf qmailrocks.tar.gz
}}}
see [[http://www.qmailrocks.org/download.htm|here]] for more details
Next run these scripts
{{{
cd /downloads/qmailrocks/scripts/install
./qmr_install_linux-s1.script
cd /downloads/qmailrocks/scripts/util
./qmail_big_patches.script
}}}
If all ok proceed
Build qmail
{{{
cd /usr/src/qmail/qmail-1.03
make man && make setup check
./config-fast your_fqdn_hostname (ex: ./config-fast mail.mydomain.com)
}}}
Create a certificate
{{{
make cert
}}}
Set right ownership
{{{
chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem
}}}
build ucspi-tcp...
{{{
cd /usr/src/qmail/ucspi-tcp-0.88/
make && make setup check
}}}
If you get an error do as follows:
{{{
cd /usr/src/qmail/ucspi-tcp-0.88/
patch < /downloads/qmailrocks/patches/ucspi-tcp-0.88.errno.patch
make && make setup check
}}}
Should be ok now... (at least for me...)
build the daemontools....
{{{
cd /package/admin/daemontools-0.76
package/install
}}}
Again if you get an error, run this (IT IS DIFFERENT FROM THE ONE ABOVE):
{{{
cd /package/admin/daemontools-0.76/src
patch < /downloads/qmailrocks/patches/daemontools-0.76.errno.patch
cd /package/admin/daemontools-0.76
package/install
}}}
Check if "svscanboot" is running:
{{{
ps -aux | grep svs
}}}
You should get something like this:
{{{
root 6576 0.0 0.2 2640 1256 ? Ss 12:50 0:00 /bin/sh /command/svscanboot
root 6587 0.0 0.1 2852 708 pts/1 S+ 12:53 0:00 grep svscanboot
}}}
Note: The second one is just the grep command... the first is what you are looking for.
Install ezmlm
{{{
cd /downloads/qmailrocks/
tar zxvf ezmlm-0.53-idx-0.41.tar.gz
cd ezmlm-0.53-idx-0.41
make && make setup
}}}
Install autoresponders
{{{
cd /downloads/qmailrocks
tar zxvf autorespond-2.0.5.tar.gz
cd autorespond-2.0.5
make && make install
}}}
Here I will install vpopmail WITHOUT MySQL support, <
>
if you wish to integrate MySQL support into vpopmail (usually for handling several domains - ie. more than 50 let-s say - then please follow the instructions from [[http://www.qmailrocks.org/vpopmail.htm|this page]]. Thanks.
Configure Vpopmail
see ./configure --help for all config options, otherwise...
{{{
./configure --enable-logging=p
make && make install-strip
}}}
Vqadmin
{{{
cd /downloads/qmailrocks
tar zxvf vqadmin-2.3.6.tar.gz
cd vqadmin-2.3.6
./configure --enable-cgibindir=/path/to/your/cgi-bin --enable-htmldir=/path/to/your/html/directory
(Example: ./configure --enable-cgibindir=/var/www/cgi-bin --enable-htmldir=/var/www/html )
make && make install-strip
}}}
add the following to your server's Apache configuration file (usually httpd.conf)
{{{
deny from all
Options ExecCGI
AllowOverride AuthConfig
Order deny,allow
}}}
In addition, within the Apache master config file you will want to set the "AllowOveride" option to "All". Example: AllowOverride All
{{{ cd /path/to/your/cgi-bin/vqadmin }}}
Now you will want to create a .htaccess file to password protect the Vqadmin interface. There should already be a .htaccess file in the vqadmin directory, so all you need to do is configure it. We'll use the ever useful vi editor for this.
{{{ vi .htaccess }}}
{{{
AuthType Basic
AuthUserFile /path/to/where/you/want/to/store/the/password/file/.htpasswd
AuthName vQadmin
require valid-user
satisfy any
}}}
{{{ chown apache .htaccess }}} (you may need to change the chown to either "nobody", "apache" or "www" etc., depending on what user your installation of Apache is running as)
{{{ chmod 644 .htaccess }}}
Now you need to create a corresponding .htpasswd file that's going to contain the username and encrypted password for the Vqadmin administrator...
{{{
htpasswd -bc /path/to/where/you/want/to/store/the/password/file/.htpasswd admin admin_password
chmod 644 /path/to/where/you/want/to/store/the/password/file/.htpasswd
}}}
Go to: http://www.yourdomain.com/cgi-bin/vqadmin/vqadmin.cgi
log in with user admin and the password you provided...
If you get a 500 Internal Server Error
try this:
Go to where you stored the .htpasswd file and {{{ cp .htpasswd vqadmin.passwd }}}
Assign the right ownership to it, mine looks like this:
{{{
-rw-r--r-- 1 www-data www-data 20 2008-01-24 14:31 vqadmin.passwd
}}}
Maildrop
{{{
cd /downloads/qmailrocks
tar zxvf maildrop-1.6.3.tar.gz
cd maildrop-1.6.3
./configure --prefix=/usr/local --exec-prefix=/usr/local --enable-maildrop-uid=root --enable-maildrop-gid=vchkpw --enable-maildirquota
make && make install-strip && make install-man
}}}
Qmailadmin
{{{
cd /downloads/qmailrocks
tar zxvf qmailadmin-1.2.9.tar.gz
cd qmailadmin-1.2.9
./configure --enable-cgibindir=/path/to/your/cgi-bin --enable-htmldir=/path/to/your/html/directory
}}}
note: The paths in the above configure script will need to be custom tailored to your systems configuration
{{{
make && make install-strip
}}}