Zunächst installieren wir "postfix". Da wir ein paar Compilerflags mitgeben müssen, installieren wir postfix aus den Ports. Da auch der Mailserver in seiner eigenen Jail läuft...

  1. Wir mounten das Verzeichnis '/usr/ports' in die Jail und wechseln in das Verzeichnis '/usr/ports/mail/postfix/'.

    # mount_nullfs -o rw /usr/ports /jails/mail/usr/ports

  2. Anschließend installieren wir postfix und wählen folgende Optionen aus:
    • PCRE
    • Dovecot
    • TLS
    • MYSQL

    # make install clean

  3. Während des Installationsprozesses wirst du gefragt, ob du den Benutzer "postfix" hinzufügen willst, was du bestätigen solltest mit "yes". Die nächste Frage, ob 'postfix' in der Datei 'mailer.conf' aktiviert werden soll, was wir auch mit "yes" bestätigen.

  4. Anschließend deaktivieren wir 'sendmail' und aktivieren 'postfix' in der Datei "/etc/rc.conf", indem wir folgende Zeilen einfügen:

    sendmail_enable="NO"
    sendmail_submit_enable="NO"
    sendmail_outbound_enable="NO"
    sendmail_msp_queue_enable="NO"
    postfix_enable=”YES”

  5. Anschließend legen wir einen "Virtual Mailbox User" an:

    # adduser

    Folgende Angaben sind zu machen:
    • Username: vmail
    • Fullname: Virtual Mailbox User
    • UID: 150
    • Shell: nologin
    • Home-Directory: /var/mail/virtual
    • Use password-based authentication? no
    • Lock out: no

    Jetzt fügen wir unseren neuen Benutzer der Gruppe "mail" hinzu.

    # pw groupmod mail -M vmail

  6. Dann deaktivieren wir noch ein paar Maintenance-Dienste von sendmail (sieh dir bitte erst die nachfolgende Alternative an und wähle aus, was dir angenehmer erscheint):

    # chmod –x /etc/periodic/daily/150.clean-hostat

    # chmod –x /etc/periodic/daily/440.status-mailq

    # chmod –x /etc/periodic/daily/460.status-mail-rejects

    # chmod –x /etc/periodic/daily/500.queuerun


    Alternative: Eleganter ist es, eine Datei '/etc/periodic.conf' anzulegen bzw. die Default-Version aus '/etc/defaults/' zu kopieren und folgende Zeilen einzufügen oder ggf. zu ändern:

    daily_clean_hoststat_enable="NO"
    daily_status_mailq_enable="NO"
    daily_status_mail_rejects_enable="NO"
    daily_queuerun_enable="NO"

  7. Jetzt legen wir noch das Verzeichnis für die mysql-Konfigurationen von postfix an:

    # mkdir /usr/local/etc/postfix/cf

    Dort legen wir die Konfigurationsdateien ab, die du hier herunterladen kannst. Bitte entferne die Endung ".txt" und passe die Werte entsprechend an deine Konfiguration an. Siehe auch die Kommentare in den Dateien, sie erklären genug.
    mysql_relay_domains_maps.cf 
    mysql_virtual_alias_maps.cf 
    mysql_virtual_domains_maps.cf 
    mysql_virtual_email2email.cf 
    mysql_virtual_mailbox_maps.cf
  8. Jetzt tragen wir in der Datei '/usr/local/etc/postfix/master.cf' folgende Zeile ein:

    dovecot   unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail:mail argv=/usr/local/libexec/dovecot/deliver -d ${recipient}

  9. Anschließend erstellen wir die Zertifikate für die Verschlüsselung:

    # mkdir /usr/local/etc/ssl/

    # cd /usr/local/etc/ssl/

    # openssl genrsa 1024 > mail-key.pem

    # chmod 400 mail-key.pem

    # openssl req -new -x509 -nodes -sha1 -days 3650 \
       -key mail-key.pem > mail-cert.pem

    ACHTUNG: Common Name muss dem Hostnamen entsprechen, z.B. mail.domain.de

  10. Abschließend müssen wir noch einen Datenbank-User anlegen. Diesem gibst du alle Zugriffsrechte auf seine Datenbank. Zugriffsmöglichkeiten müssen von localhost und deinem Webserver aus zugänglich sein. Hierfür gib folgendes ein (du brauchst das Passwort des root-Datenbankusers):

    # mysql -h IP-DES-DB-SERVERS -u root -p

    CREATE USER 'postfix'@'WWW-HOST' IDENTIFIED BY 'PASSWORT';
    GRANT USAGE ON *.* TO 'postfix'@'WWW-HOST' IDENTIFIED BY 'PASSWORT';
    GRANT USAGE ON *.* TO 'postfix'@'MAIL-HOST' IDENTIFIED BY 'PASSWORT';
    CREATE DATABASE IF NOT EXISTS `postfix`;
    GRANT ALL PRIVILEGES ON `postfix`.* TO 'postfix'@'WWW-HOST';
    GRANT ALL PRIVILEGES ON `postfix`.* TO 'postfix'@'MAIL-HOST';
    FLUSH PRIVILEGES;

    Trage bitte statt "PASSWORT" ein Benutzerpasswort ein für den Benutzer "POSTFIX". Die Daten brauchen wir später wieder für die Konfiguration von Dovecot.
    Anstelle von WWW-HOST und MAIL-HOST trägst du die Hostnames ein, oder, was sicherer ist, die IP-Adressen. Wenn du Jails einsetzt, dann sind das die internen IPs.

  11. Nachdem die Datenbank angelegt ist, importieren wir noch das folgende Skript (SQL-Skript) um die Tabellen anzulegen. Lade es hier herunter und am einfachsten importierst du es über phpMyAdmin oder oder folgenden Befehl:

    # mysql -u postfix -p < sql-postfix.txt

  12. Jetzt müssen wir noch die Postfix-Konfigurationsdatei 'main.cf' anlegen bzw. anpassen.
    main.cf