Postfix mit virtuellen Usern und Procmail

Ich setze an dieser Stelle ein funktionierendes postfix-System mit Mysql-Backend vorraus. Außerdem müsst ihr zusätzlich noch „procmail“ installieren.

Zuerst legen wir fest welche Mail-Adressen ihre Mails über procmail erhalten sollen. Dazu erstellen wir die Datei /etc/postfix/transport und tragen sie im folgenden Format ein.

user@domain.tld procmail

Danach führen wir einmal den Befehl postmap aus.

postmap /etc/postfix/transport

main.cf anpassen

Nun müssen wir festlegen das postfix vor verteilen der Mail in die /etc/postfix/transport schaut, über welchen Transport die Mail laufen soll. Deshalb tragen wir folgendes in die main.cf ein.

transport_maps = hash:/etc/postfix/transport

master.cf anpassen

Jetzt müssen wir nur noch festlegen was der Transport procmail genau ist. Dies geschieht durch eintragen folgender Zeilen in der master.cf. Vorhandene Einträge mit procmail müsst ihr aus der master.cf löschen oder auskommentieren.

procmail unix - n n - - pipe
 -o flags=RO user=vmail argv=/usr/bin/procmail -t -m USER=${user} EXTENSION=${extension} DOMAIN=${domain} /etc/postfix/procmailrc.common

Jetzt legen wir fest wie procmail mit den erhaltenen Mails umgehen soll. Jede Adresse die durch procmail beliefert wird benötigt ihre eigene .procmailrc, wenn dies nicht anders durch die globale procmailrc festgelegt wird.

globale procmailrc

Die globale procmailrc legt grundsätzliche Variablen fest, heißt bei mir procmailrc.common und liegt in /etc/postfix/. Sie sieht bei mir folgendermaßen aus.

procmailrc.common
MAILDIR="/var/mail/$USER@$DOMAIN/"
DEFAULT="$MAILDIR/"
#VERBOSE=ON
#each user will set his own log file
#LOGFILE="/var/log/procmail/proclog-$USER-$DOMAIN"
NL="
"
WS="    "
SWITCHRC="$MAILDIR/.procmailrc"

.procmailrc

An dieser Stelle müsst ihr selber kreativ werden, weil wohl jeder andere Regel festlegen will. Hilfe erhaltet ihr im Manual für procmailrc.

man procmailrc