QMail HOWTO

 QMail HOWTO 
Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Oliver Lehmann (mailto:lehmann@ans-netz.de)
Das nachfolgende HOWTO ist zur Installation eines Mailservers gedacht. Eingerichtet werden die Dienste POP3 und POP3 über SSL, sowie IMAP4 und IMAP4 über SSL. Für den Mailtransfer wird SMTP bzw. SMTP/SSL zur Verfügung stehen. Die Authentifizierung zur Nutzung des SMTP Dienstes erfolgt wahlweise ueber SMTP-AUTH oder über eine vorherige POP3 oder IMAP4 Anmeldung (SMTP after POP3/IMAP4). Bei den Ausführungen wird zugrunde gelegt, dass Sie die Installation auf einem FreeBSD (http://www.FreeBSD.org/) System vornehmen.
Version 2.06
$Date: 2016/10/09 09:16:41 $
Dieses HOWTO wurde mit größter Sorgfalt erstellt. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Ich kann für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler bin ich dankbar.

Inhaltsverzeichnis
1. Installation der benötigten Programme	000
1.1. Qmail	000
1.2. ucspi-tcp	000
1.3. daemontools	000
1.4. vpopmail	000
1.5. Dovecot	000
1.6. ezmlm-idx	000
1.7. qmail-conf	000
1.8. qmail-qfilter	000
1.9. SpamAssassin	000
1.10. Qmail Localfilter	000
1.11. greylite	000
2. Konfiguration der benötigten Programme	000
2.1. Qmail	000
2.2. vpopmail	000
2.3. Dovecot	000
2.4. qmail-conf	000
2.5. daemontools	000
2.6. qmail-qfilter und greylite	000
3. Administration des Mailsystems	000
3.1. vpopmail	000
3.2. ezmlm-idx	000
4. Web-tools	000
4.1. qmailadmin	000
4.2. vqadmin	000
4.3. Horde	000

Kapitel 1. Installation der benötigten Programme
Hier wird die Kompilierung und Installierung der benötigten Programme beschrieben. Da für viele der verwendeten Programme schon Ports (http://www.FreeBSD.org/ports/) vorhanden sind, gestaltet sich dieser Abschnitt recht kurz. Im weiteren Verlauf des HOWTOs greife ich auf folgende, zu definierende, Shellvariablen zurück.
SRC_PATH
 	Diese Variable beinhaltet den Pfad in dem Software die nicht als Port verfügbar ist zwischengespeichert, entpackt und kompiliert wird. Bitte beachten Sie, das die Partition in der sich das Verzeichnis befindet über genügend freien Speicherplatz verfügt (ca. WRITEME!).
Sollten Sie eine Bourne Shell verwenden, setzen Sie die Umgebungsvariable mit 

    export VARIABLE="Wert"

 Sollten Sie eine C-Shell verwenden, setzen Sie die Umgebungsvariable mit 

    setenv VARIABLE "Wert"

1.1. Qmail
QMail ist das "Hauptprogramm". Es wird im späteren Betrieb für die Versendung der Mails, und für die Verteilung der ankommenden Mails auf dem Server sorgen. 

    cd /usr/ports/mail/qmail-tls
    make rmconfig
    env mail_qmail-tls_SET="BIG_TODO_PATCH BLOCKEXEC_PATCH OUTGOINGIP_PATCH QMAILQUEUE_PATCH" mail_qmail-tls_UNSET=RCDLINK BATCH=1 make patch
    cd `make -VWRKDIR`
    fetch http://www.pofo.de/HOWTO/qmail/files/patch-qmail-smtpd-auth.tar.gz
    tar -xzf patch-qmail-smtpd-auth.tar.gz
    cd patch-qmail-smtpd-auth
    patch -d ../netqmail-1.06 < Makefile.patch
    patch -d ../netqmail-1.06 < TARGETS.patch
    patch -d ../netqmail-1.06 < qmail-smtpd.8.patch
    patch -d ../netqmail-1.06 < qmail-smtpd.c.patch
    cp base64.* ../netqmail-1.06
    cd /usr/ports/mail/qmail-tls
    env mail_qmail-tls_SET="BIG_TODO_PATCH BLOCKEXEC_PATCH OUTGOINGIP_PATCH QMAILQUEUE_PATCH" mail_qmail-tls_UNSET=RCDLINK BATCH=1 make install
    make certificate
    make clean
    cp /etc/rc.conf /etc/rc.conf.bak
    grep -v sendmail_enable /etc/rc.conf > /etc/rc.conf2
    echo 'sendmail_enable="NONE"' >> /etc/rc.conf2
    mv /etc/rc.conf2 /etc/rc.conf
    rm /usr/sbin/sendmail
    cp /var/qmail/bin/sendmail /usr/sbin/sendmail

 Beachten Sie bitte, das nach einem Systemupdate wie z.B. mit Hilfe von "make world" Das sendmail binary wieder überschrieben wird. Sie müssen also nach einem Systemupdate /usr/sbin/sendmail wieder durch /var/qmail/bin/sendmail ersetzen.
1.2. ucspi-tcp
Mit Hilfe von ucspi-tcp ist es möglich auf den Internet Superserver (inetd) zu verzichten. 

    cd /usr/ports/sysutils/ucspi-tcp
    make rmconfig
    env sysutils_ucspi-tcp_SET="RSS_DIFF SSL" sysutils_ucspi-tcp_UNSET="IPV6 LIMITS RBL2SMTPD" BATCH=1 make install clean

1.3. daemontools
Um die Administration der einzelnen Dienste wie POP3, SMTP (ff. als "Maildienste" bezeichnet)zu erleichtern, werden die daemontools eingesetzt. Sollte ein Dienst aus welchem Grund auch immer beendet werden, sorgen die daemontools dafür, das er innerhalb von 5 Sekunden wieder gestartet wird. (aus diesem Grunde bleibt das killen eines Maildienstes sinnfrei). 

    cd /usr/ports/sysutils/daemontools
    make -DBATCH install clean

1.4. vpopmail
Vpopmail verwaltet die gesamten Domains sowie die dazugehörigen Useraccounts. Wünschen Sie SMTP-AUTH mit den Authentifizierungs-Features "CRAM-MD5" und "LOGIN", führen Sie bitte die folgenden Kommandos aus. Bitte bedenken Sie, dass bei diesem Weg die E-Mail-Passwörter in Klartext(!) auf dem Mailserver abgelegt werden. 

    cd /usr/ports/mail/vpopmail
    make rmconfig
    env mail_vpopmail_SET=CLEAR_PASSWD BATCH=1 make install clean

 Wenn die Passwörter ausschließlich verschlüsselt auf dem Mailserver gespeichert werden sollen müssen Sie die wie folgt beschrieben vorgehen. Als Authentifizierungsmethode steht dann nur "LOGIN" zur Verfügung. 

    cd /usr/ports/mail/vpopmail
    make install clean

 Weitere Informationen über SMTP-AUTH finden Sie unter SMTP Authentication (http://www.fehcom.de/qmail/smtpauth.html)
1.5. Dovecot
Dovecot stellt Ihnen u.a. Daemons für die Protokolle IMAP und IMAP über SSL, sowie POP3 über SSL zu Verfügung. Des weiteren bietet Dovecot einen Dienst mit welchem Filterregeln in der Sieve (http://sieve.info/) Sprache angewendet werden. Damit können zum Beispiel Mails automatisch in bestimmte Ordner geleitet werden oder auch Abwesenheitsagenten konfiguriert werden. 

  cd /usr/ports/mail/dovecot2
  make rmconfig
  env mail_dovecot2_SET=VPOPMAIL BATCH=1 make install clean

  cd /usr/ports/mail/dovecot2-pigeonhole
  make install clean

1.6. ezmlm-idx
Durch Ezmlm-idx wird auch das Aufsetzen sowie die Verwaltung von Mailinglisten möglich. 

    cd /usr/ports/mail/ezmlm-idx
    make -DBATCH all install clean
    cp /usr/local/etc/ezmlm/ezmlmrc.sample /usr/local/etc/ezmlm/ezmlmrc

1.7. qmail-conf
qmail-conf erleichtert uns im weiteren Verlauf die Konfiguration der Startscripte für den POP3d, SMTPd, und den Qmail eigenen "Auslieferungsdienst" 

    cd /usr/ports/mail/qmail-conf
    make install clean

1.8. qmail-qfilter
qmail-qfilter erlaubt das Ausführen eines Programmmes zur Filterung des E-Mailtextes bevor die eigentliche Abarbeitung durch den Qmail Queuemanager erfolgt. Dadurch können Mails z.B. vorher auf SPAM geprüft werden um dann im Erfolgsfall mit einem SMTP Errorcode direkt abgewiesen zu werden. So gelangen soe gar nicht erst auf das System. 

    cd /usr/ports/mail/qmail-qfilter
    make install clean

1.9. SpamAssassin
SpamAssassin wird dafür sorgen, das sowenig wie möglich Spam Mails auf das Mailsystem gelangen 

    cd /usr/ports/mail/spamassassin
    make -DBATCH install clean
    mkdir /usr/local/vpopmail/.spamassassin
    chown vpopmail /usr/local/vpopmail/.spamassassin
    grep -v spamd_ /etc/rc.conf > /etc/rc.conf2
    echo 'spamd_enable="YES"' >> /etc/rc.conf2
    echo 'spamd_flags="-u vpopmail -A 127.0.0.1 -d -m4 -r ${spamd_pidfile}"' >> /etc/rc.conf2
    mv /etc/rc.conf2 /etc/rc.conf
    /usr/local/bin/sa-update

1.10. Qmail Localfilter
Der Qmail Localfilter schlägt die Brücke zwischen Qmail und Spamassassin. 

    cd $SRC_PATH
    fetch http://www.pofo.de/HOWTO/qmail/files/sa-analyze-0.1.tgz
    tar -xzf sa-analyze-0.1.tgz qmail-localfilter.pl qmail-localfilter.sh
    perl -pi -e 's/\$\{QMAIL_BIN\}\/qmail-qfilter/\/usr\/local\/bin\/qmail-qfilter/' qmail-localfilter.sh
    perl -pi -e 's/\/usr\/bin\/perl/\/usr\/local\/bin\/perl/' qmail-localfilter.pl
    mv qmail-localfilter.pl qmail-localfilter.sh /var/qmail/bin

1.11. greylite
Greylite ist ein Programm welches greylisting implementiert und die Load des Mailservers erheblich reduziert, da SpamAssassin nicht mehr so häufig aufgerufen werden muß. 

    cd /usr/ports/mail/greylite
    make -DBATCH install
    cd `make -VWRKSRC`
    mkdir -p /var/db/greylite
    awk '{print} END {print ".exit"}' greydb.sql | sqlite3 -init - /var/db/greylite/greylite.db
    cd -
    make clean
    chown -R vpopmail:vchkpw /var/db/greylite

Kapitel 2. Konfiguration der benötigten Programme
Dieser Abschnitt beschäftigt sich mit der Konfiguration der zuvor installierten Applikationen.
2.1. Qmail
Mit den folgenden Zeilen werden 3 leere Dateien angelegt. Wenn Qmail ohne vpopmail eingesetzt wird, werden Mails die an diese 3 "Spezialkonten" gehen, an die in der dem Konto entsprechenden Datei stehenden eMail-Adresse weiterzuleitet. 

    touch /var/qmail/alias/.qmail-postmaster \
          /var/qmail/alias/.qmail-root \
          /var/qmail/alias/.qmail-mailer-daemon

 Da vpopmail die Domains und User verwaltet, muss dafür gesorgt werden, das sich der QMail eigene POP3d für keine Domains zuständig fühlt. 

    echo "" > /var/qmail/control/locals
    echo "localhost" >> /var/qmail/control/rcpthosts
    chown vpopmail /var/qmail/control/servercert.pem

 Zur RFC konformen Anmeldung bei anderen Mailservern mit dem eigenen Domainnamen, sowie die Erweiterung der Empfänger- und/oder Sender-Adresse wenn keine Domain angegeben ist, dienen die folgenden 3 Zeilen. 

    hostname > /var/qmail/control/me
    hostname | sed "s/^`hostname -s`.//g" > /var/qmail/control/defaultdomain
    hostname | sed "s/^`hostname -s`.//g" > /var/qmail/control/plusdomain

2.2. vpopmail
Nach einer erfolgreichen Authentifizierung über einen Maildienst wird der SMTP Zugriff für eine bestimmte IP in Verbindung mit einem bestimmten Zeitraum freigeben. Dadurch ist ein Missbrauch des SMTP Servers zur Versendung von SPAM durch unbekannte nahezu unmöglich. Damit der freie Zugriff von dieser einen IP nicht unbegrenzt ist, nehmen folgende Zeilen einen Eintrag in der crontab (http://www.FreeBSD.org/cgi/man.cgi?query=crontab) vor. 

    crontab -l >/tmp/crontab.vpopmail
    echo "40 * * * * /usr/local/vpopmail/bin/clearopensmtp >/dev/null 2>&1 " >>/tmp/crontab.vpopmail
    crontab /tmp/crontab.vpopmail -u root

2.3. Dovecot
Als erstes sollte die Standardkonfiguration übernommen werden. 

  cp  -p /usr/local/share/doc/dovecot/example-config/dovecot.conf /usr/local/etc/dovecot/
  cp -rp /usr/local/share/doc/dovecot/example-config/conf.d       /usr/local/etc/dovecot/

 Nun werden die SSL Zertifikate zum Einsatz bei der Verwendung von IMAP-SSL und POP3-SSL generiert. 

  mkdir /usr/local/etc/dovecot/ssl
  mkdir /usr/local/etc/dovecot/ssl/private
  mkdir /usr/local/etc/dovecot/ssl/certs
  cd  /usr/local/share/examples/dovecot/
  env SSLDIR=/usr/local/etc/dovecot/ssl /usr/local/share/examples/dovecot/mkcert.sh

 Nun muss die Dovecot Konfiguration unter /usr/local/etc/dovecot angepasst werden. 
•	dovecot.conf - erweitern der Protokolle um sieve 

    cd $SRC_PATH
    fetch http://www.pofo.de/HOWTO/qmail/files/dovecot.conf.diff
    patch -p0 < dovecot.conf.diff

•	conf.d/10-auth.conf - aktivieren der Vpopmail Authentifikation, deaktivieren der Systemauthentifikation 

    cd $SRC_PATH
    fetch http://www.pofo.de/HOWTO/qmail/files/10-auth.conf.diff
    patch -p0 < 10-auth.conf.diff

•	conf.d/10-master.conf - Zugriff des LDA auf die vpopmail-userdb zulassen 

    cd $SRC_PATH
    fetch http://www.pofo.de/HOWTO/qmail/files/10-master.conf.diff
    patch -p0 < 10-master.conf.diff

•	conf.d/10-logging.conf - verwenden von extra dovecot Logfiles (optional) 

    cd $SRC_PATH
    fetch http://www.pofo.de/HOWTO/qmail/files/10-logging.conf.diff
    patch -p0 < 10-logging.conf.diff
    mkdir /var/log/dovecot
    grep -v dovecot /etc/newsyslog.conf > /etc/newsyslog.conf.new
    echo "/var/log/dovecot/dovecot.log            600  7     *    @T00  JC    /var/run/dovecot/master.pid  30" >> /etc/newsyslog.conf.new
    echo "/var/log/dovecot/dovecot-info.log       600  7     *    @T00  JC    /var/run/dovecot/master.pid  30" >> /etc/newsyslog.conf.new
    echo "/var/log/dovecot/dovecot-debug.log      600  7     *    @T00  JC    /var/run/dovecot/master.pid  30" >> /etc/newsyslog.conf.new
    mv /etc/newsyslog.conf.new /etc/newsyslog.conf

•	conf.d/10-mail.conf - anpassen der kleinsten erlaubten uid auf 89 (vpopmail) und definieren wo die Mailverzeichnisse liegen für doveadm 

    cd $SRC_PATH
    fetch http://www.pofo.de/HOWTO/qmail/files/10-mail.conf.diff
    patch -p0 < 10-mail.conf.diff

•	conf.d/10-ssl.conf - anpassen der Pfade der SSL Zertifikate 

    cd $SRC_PATH
    fetch http://www.pofo.de/HOWTO/qmail/files/10-ssl.conf.diff
    patch -p0 < 10-ssl.conf.diff

•	conf.d/15-lda.conf - der LDA muß weiter nach /var/log/maillog protokollieren da er keine Schreibberechtigung in /var/log/dovecot hat - ausserdem muss hier auch das sieve Protokoll aktiviert werden Zur Regelauswertung bei der Mailzustellung 

    cd $SRC_PATH
    fetch http://www.pofo.de/HOWTO/qmail/files/15-lda.conf.diff
    patch -p0 < 15-lda.conf.diff

 Jetzt noch dovecot aktivieren, und die Dovecot Konfiguration ist abgeschlossen. 

    grep -v dovecot_enable /etc/rc.conf > /etc/rc.conf2
    echo 'dovecot_enable="YES"' >> /etc/rc.conf2
    mv /etc/rc.conf2 /etc/rc.conf

2.4. qmail-conf
Jetzt werden der Reihe nach die Dienste POP3 und SMTP, sowie der eigentliche Mail-Verteiler für die daemontools erzeugt. Greylite wird ausserdem in den Aufruf des SMTP Daemons mit eingebaut. 

    /var/qmail/bin/qmail-pop3d-conf /usr/local/vpopmail/bin/vchkpw \
        qmaill /var/qmail/service/pop3d
    cd /var/qmail/service/pop3d/
    echo ":allow" >tcp
    echo "200" > env/CONCURRENCY
    make

    /var/qmail/bin/qmail-smtpd-conf vpopmail qmaill /var/qmail/service/smtpd
    cd /var/qmail/service/smtpd/
    perl -pi -e 's/\/var\/qmail\/bin\/qmail-smtpd$/\/usr\/local\/bin\/greylite \/var\/qmail\/bin\/qmail-smtpd \/usr\/local\/vpopmail\/bin\/vchkpw \/bin\/true 2>\&1/' run
    echo "200" > env/CONCURRENCY
    rm -f tcp.cdb tcp
    ln -s /usr/local/vpopmail/etc/tcp.smtp.cdb /var/qmail/service/smtpd/tcp.cdb
    ln -s /usr/local/vpopmail/etc/tcp.smtp /var/qmail/service/smtpd/tcp
    rm Makefile

    echo '#\!/bin/sh' >/var/qmail/rc
    echo 'exec env - PATH="/var/qmail/bin:$PATH" \' >>/var/qmail/rc
    echo 'qmail-start ./Maildir/ /usr/local/bin/multilog t /var/log/qmail qmaill' >>/var/qmail/rc
    chmod 755 /var/qmail/rc
    /var/qmail/bin/qmail-delivery-conf qmaill /var/qmail/service/qmail
    mkdir /var/log/qmail
    chmod 750 /var/log/qmail
    chown qmaill /var/log/qmail

2.5. daemontools
Das Programm "svscan" aus den daemontools sucht unterhalb eines Verzeichnisses alle Unterverzeichnisse nach einer Datei mit dem Namen "run" ab. Üblicherweise liegen diese Unterverzeichnisse alle unterhalb von /var/service. Diese Verzeichnisse, in diesem Fall symbolische Links, werden jetzt erzeugt. 

    mkdir /var/service
    ln -s /var/qmail/service/pop3d /var/service/pop3d
    ln -s /var/qmail/service/smtpd /var/service/smtpd
    ln -s /var/qmail/service/qmail /var/service/qmail

 Damit "svscan" nach einem reboot auch wieder gestartet wird, muss das Startscript aktiviert werden. 

    grep -v svscan_enable /etc/rc.conf > /etc/rc.conf2
    echo 'svscan_enable="YES"' >> /etc/rc.conf2
    mv /etc/rc.conf2 /etc/rc.conf

2.6. qmail-qfilter und greylite
Damit SpamAssassin bei dem Empfang einer Mail noch vor deren Verteilung aufgerufen, und damit im Zweifel abgewiesen wird, muß folgendes ausgeführt werden. Mit dem setzen der GREYLITE Variable wird gleichzeitig dafür gesorgt, daß SpamAssasin nicht unnötig oft aufgerufen wird 

    echo 20000000 > /var/qmail/service/smtpd/env/DATALIMIT
    echo ':allow,QMAILQUEUE="/var/qmail/bin/qmail-localfilter.sh",GREYLIST="Y"' >> /usr/local/vpopmail/etc/tcp.smtp
    /usr/local/bin/tcprules /usr/local/vpopmail/etc/tcp.smtp.cdb /usr/local/vpopmail/etc/tcp.tmp < /usr/local/vpopmail/etc/tcp.smtp

Kapitel 3. Administration des Mailsystems
Hier wird die grundlegende Administration des Mailservers beschrieben, von der Verwaltung der Domains, und Usern, sowie Mailinglisten. Sollten Sie ausschließ Web-Interfaces für die Administrierung Ihres Mailservers einsetzen, können Sie diesen Abschnitt überspringen.
3.1. vpopmail
Eine Domain legt man wie folgt an: 

    /usr/local/vpopmail/bin/vadddomain <DOMAIN.TLD>

 Möchte man eine 2. Domain mit genau den selben Usern haben, also eine Mail an user1@domain.tld soll genauso an user1@alias.tld gehen, bietet sich eine sogenannte "Aliasdomain" an. 

    /usr/local/vpopmail/bin/vaddaliasdomain <ALIAS.TLD> <DOMAIN.TLD>

 User zu einer Domain legt man so an: 

    /usr/local/vpopmail/bin/vadduser <USER1>@<DOMAIN.TLD>
    echo '| preline -f /usr/local/libexec/dovecot/deliver -d $EXT@$USER' > /usr/local/vpopmail/domains/<DOMAIN.TLD>/.qmail-<USER1>

 Gelöscht wird ein User mit: 

    /usr/local/vpopmail/bin/vdeluser <USER1>@<DOMAIN.TLD>

 Das Passwort eines Users ändern Sie mit: 

    /usr/local/vpopmail/bin/vmoduser -e cryptedpasswort <USER1>@<DOMAIN.TLD>

3.2. ezmlm-idx
Eine moderierte Liste mit dem Namen "TEST", dessen Moderator unter der eMail-Adresse "user1@domain.tld" erreichbar ist, legen Sie wie folgt an: 

    cd /usr/local/vpopmail/domains
    ezmlm-make -rdug -5 <USER1>@<DOMAIN.TLD> /usr/local/vpopmail/domains/<DOMAIN.TLD>/TEST /usr/local/vpopmail/domains/<DOMAIN.TLD>/.qmail-TEST TEST <DOMAIN.TLD>
    ezmlm-sub /usr/local/vpopmail/domains/<DOMAIN.TLD>/TEST <USER1>@<DOMAIN.TLD>
    ezmlm-sub /usr/local/vpopmail/domains/<DOMAIN.TLD>/TEST/digest <USER1>@<DOMAIN.TLD>
    ezmlm-sub /usr/local/vpopmail/domains/<DOMAIN.TLD>/TEST/mod <USER1>@<DOMAIN.TLD>
    chown -h vpopmail.vchkpw ./<DOMAIN.TLD>/.qmail-TEST*
    chown -R vpopmail.vchkpw ./<DOMAIN.TLD>/TEST

Kapitel 4. Web-tools
Die im folgenden beschriebenen Tools, dienen zur Administration, bzw. zur Verwendung Ihres Mailservers über einen Webbrowser.
4.1. qmailadmin
qmailadmin ist ein Tool zur Administration der Useraccounts und Mailinglisten bezogen auf eine existierende Domain. qmailadmin verfügt über zwei Modi. Im Ersten ist es möglich alle Useraccounts und Mailinglisten einer Domain zu administrieren. Loggen Sie sich dazu bitte mit "postmaster" und dem Domainpasswort ein. Im zweiten Modus kann jedes E-Mailkonto einzeln verwaltet werden. Loggen Sie sich dazu mit Ihrem Usernamen, also in unserem Falle "user1", und dem POP3 Passwort ein. Sollten Sie keine Installation unter dem default-cgi-bin Verzeichnis welches vom Apacheport standardmäßig unter /usr/local/www/cgi-bin eingerichtet wird wollen, schauen Sie bitte in das Makefile und definieren Sie die entsprechenden Variablen beim kompilieren.
4.1.1. Installation

    cd /usr/ports/mail/qmailadmin
    make install clean

4.2. vqadmin
Mit vqadmin können Sie neue Domains anlegen, sowie Einstellungen bestehender Domains und E-Mailkonten verwalten.
4.2.1. Installation

    cd /usr/ports/mail/vqadmin
    make install clean

4.2.2. Konfiguration
Während der Installation wurde eine .htaccess Datei nach /usr/local/www/cgi-bin-dist/vqadmin/ kopiert. Editieren Sie diese Datei, und ändern Sie gegebenenfalls den Pfad zu der Passwortdatei. Legen Sie dann diese Passwortdatei mit "htpasswd" an. Welchen Zugriff ein htaccess-User innerhalb des Tools haben soll, stellen Sie bitte unter "/usr/local/www/cgi-bin-dist/vqadmin/vqadmin.acl" ein. Ein bereits in der vqadmin.acl definierter htaccess Account wäre zum Beispiel "admin"
4.3. Horde
Hier wird die Verwendung der zwei Horde Komponenten IMP und Ingo vorgestellt. Horde IMP ist der eigentliche Webmailer welcher durch seine Vielzahl an Features und seiner modernen Aufmachung besticht. Mit Horde Ingo haben Sie die Möglichkeit, Filterregeln, Abwesenheitsagenten usw. so zu konfigurieren, das Dovecot sich bereits bei der Zustellung darum kümmert. Horde setzt eine relationale Datenbank voraus. In meinem Fall wurde eine MySQL Datenbank verwendet.
4.3.1. Horde IMP Installation

  cd /usr/ports/mail/horde-imp
  make install clean
  cp /usr/local/www/horde/config/conf.php.dist /usr/local/www/horde/config/conf.php
  touch /usr/local/www/horde/config/conf.bak.php
  touch /usr/local/www/horde/imp/config/conf.php
  touch /usr/local/www/horde/imp/config/conf.bak.php
  chown www:www /usr/local/www/horde/config/conf.php
  chown www:www /usr/local/www/horde/config/conf.bak.php
  chown www:www /usr/local/www/horde/imp/config/conf.php
  chown www:www /usr/local/www/horde/imp/config/conf.bak.php

4.3.2. Horde Ingo Installation

  cd /usr/ports/mail/horde-ingo
  make install clean
  touch /usr/local/www/horde/ingo/config/conf.php
  touch /usr/local/www/horde/ingo/config/conf.bak.php
  chown www:www /usr/local/www/horde/ingo/config/conf.php
  chown www:www /usr/local/www/horde/ingo/config/conf.bak.php

4.3.3. Horde IMP Konfiguration
Zuerst sollten Sie sich einen MySQL-Benutzer anlegen, welchen Sie für Horde verwenden wollen. Nachdem Sie dies getan haben, melden Sie sich am besten in MySQL als root user an, und legen die Datenbank "horde" an. Vergessen Sie nicht, dem neuen Benutzer entsprechende Rechte für die neue Datenbank zu geben.
Die weitere Konfiguration erfolgt online über den Aufruf von Horde. Rufen Sie dazu Horde in Ihrem Browser aus. Fahren sie mit der Maus in der oberen Leiste über das Zahnrad und wählen Sie im erscheinenden Untermenü den Punkt "Administration" und dann "Konfiguration" aus. Auf der erscheinenden Seite klicken Sie auf den Link "Horde (horde)" in der Liste der Anwendungen im Hauptteil. Folgende Einstellungen müssen dann vorgenommen werden. 
•	Database 
•	$conf[sql][phptype] - MySQL/PDO
•	$conf[sql][username] - DB Username
•	$conf[sql][password] - DB Passwort
•	$conf[sql][protocol] - wenn Horde auf dem gleichen System läft wie die Datenbank dann am besten "UNIX Sockets"
•	$conf[sql][socket] - hier dann den Pfad zum Socket - meist /tmp/mysql.sock
•	$conf[sql][database] - Name der Datenbank - meist horde
•	Authentication 
•	$conf[auth][driver] - "Let a Horde application handle authentication" auswählen
•	$conf[auth][params][app] - auf "imp" stellen
•	Preference System 
•	$conf[prefs][driver] - auf "SQL Database" setzen
•	Mailer 
•	$conf[mailer][params][sendmail_path] - auf "/usr/sbin/sendmail" setzen
 Achten Sie auch darauf, ihr eigenes E-Mail-Konto bei der Benutzerkonfiguration (Authentication -> $conf[auth][admins]) hinzuzufügen damit Sie später noch die Möglichkeit haben Horde zu konfigurieren. Z.B. "Administrator, user@domain.tld" wobei user@domain.tld Ihre E-Mailadresse ist (Die " bitte weglassen!).
4.3.4. Horde Ingo Konfiguration
Bei Ingo ist es notwendig, "sieve" als Manager für die Filterregeln einzustellen. Dazu müssen Sie lediglich die Datei /usr/local/www/horde/ingo/config/backends.local.php mit folgendem Inhalt anlegen: 

<?php
$backends['imap']['disabled'] = true;
$backends['sieve']['disabled'] = false;
$backends['sieve']['scriptparams']['utf8'] = true;
?>

 Für das richtige Zusammenspiel mit Dovecot muss ausserdem noch ein sogenannter Hook definiert werden: 

cd /usr/local/www/horde/ingo/config
fetch http://www.pofo.de/HOWTO/qmail/files/sieve-hooks
mv sieve-hooks hooks.php