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 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 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 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 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)
<Directory "/path/to/your/cgi-bin/vqadmin"> deny from all Options ExecCGI AllowOverride AuthConfig Order deny,allow </Directory>
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