Ich habs geschafft, die Lösung für Interessierte:
Ein fertig eingerichtetes Postfix vorausgesetzt, in diesem Fall mit PostgreSQL-Anbindung, Postfixadmin, Amavis und Dovecot.
Ich habe eine zweite Postfix-Instanz erstellt, dazu kopiert man /etc/postfix zu /etc/postfix-two
in /etc/postfix/main.cf fügt man alternate_config_directories = /etc/postfix-two hinzu. In der /etc/postfix-two/main.cf ändert man queue_directory und data_directory auf seperate Verzeichnisse, damit die zweite Instanz nicht mit der ersten in die Quere kommt. content_filter sollte man auch rauswerfen, wenn diese Option gesetzt ist. Dazu noch ein passendes rc-script erstellen.
In der /etc/postfix-two/master.cf entfernt man sämtliche smtp(d)-Dienste, die sind zum reinen Weiterleiten unnötig.
Bei beiden Instanzen muss man noch einige Dateien anpassen, die da wären:
/etc/postfix/transports
/etc/postfix-two/transports
Code:
* smtp:[intranet.example.com]:25
In /etc/postfix/master.cf hinzufügen
Code:
procmail unix - n n - - pipe
flags=Rq user=vmail argv=/usr/bin/procmail SENDER=${sender} RECIPIENT=${recipient} /etc/procmailrc
Man installiere sich procmail und maildrop:
/etc/progmailrc
Code:
PATH=/bin:/usr/bin:/usr/bin
MAILDIR=$HOME
LOGFILE="/var/log/procmail.log"
:0 w
{
:0 c
| /usr/bin/maildrop /etc/maildroprc $RECIPIENT
:0
| /usr/sbin/sendmail -C /etc/postfix-two/ -r $SENDER -t $RECIPIENT
}
und die /etc/maildroprc:
Code:
SHELL="/bin/bash"
RECIPIENT=$1
logfile "/var/log/maildrop.log"
DEFAULT=/var/vmail/${RECIPIENT}
to /var/vmail/$RECIPIENT
Voila, eine Kopie wird per maildrop lokal gespeichert, sendmail leitet die Mail über die zweite Postfix-Instanz an den Intranetserver weiter. Da die lokalen nur abgerufen werden sollen, falls der Intranet-Server offline ist, kann man noch ein Script schreiben, das Mails älter als 7 Tage z.b. löscht.
Für die procmail und maildrop-Geschichte habe ich einen extra Benutzer eingerichtet.
Lesezeichen