Teil 3: Der Mailserver

Eine hervorragende Schritt-für-Schritt-Anleitung findet sich unter https://workaround.org/ispmail/wheezy.
Die Einrichtung funktioniert auch unter openSuSE fast problemlos.
Hier muss lediglich in /etc/dovecot/conf.d/10-mail.conf folgendes eingetragen werden:

first_valid_uid = 303
Hintergrund: In den defaults werden Systemuser (uid < 500) vom Mailtransport ausgeschlossen. Der vmail-user unter openSuse hat jedoch die uid 303.
Alternativ kann man auch den vmail user löschen und mit größerer uid neu anlegen.

Änderungen gegenüber dem Tutorial

Der jetzt eingerichtete Mailserver hat einen kleinen Nachteil. Ein vorhandener Benutzer kann über SMTP Mails mit beliebigem Absender verschicken.
Obwohl ich dezeit allen Nutzern meines Mailservers vertraue, gefällt mir das nicht.
Mit den folgenden Änderungen akzeptiert Postfix nur noch Adressen als Absender, auf denen der Nutzer auch Mail empfangen kann:

Anpassung in der Datenbank:

USE mailserver;
CREATE VIEW virtual_alias_auth AS
SELECT email AS user, email AS owner from virtual_users
UNION
SELECT source AS user, destination AS owner from virtual_aliases WHERE NOT LEFT(source, 1)='@';
Neue Datei "/etc/postfix/mysql_sender_check.cf" erstellen und folgendes eintragen:
user = mailuser
password = <mysql passwort für mailuser>
hosts = 127.0.0.1
dbname = mailserver
query = SELECT owner FROM virtual_alias_auth WHERE user='%s'
Zum Schluss noch Postfix mitteilen, wie er sich zu verhalten hat:
postconf -e "smtpd_sender_restrictions = reject_sender_login_mismatch"
postconf -e "smtpd_sender_login_maps = mysql:/etc/postfix/mysql_sender_check.cf"
Der Vorteil dieser Lösung ist, dass sich zukünftig auch komplexere Mechanismen ohne Eingriff in die Postfix-Konfiguration abbilden lassen.
Dazu erstellt man eine neue Tabelle mit Mail-Alias, Postfach, Senden erlaubt und Empfangen erlaubt und ersetzt virtual_aliases und virtual_alias_auth durch entsprechende Views. Mir reicht allerdings im Moment die oben genannte Fassung.