PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Postfix - Mails weiterleiten und lokal speichern



misterjack
13.11.09, 07:38
Hallo,

und zwar habe ich einen Dedicated mit Postfix, der ankommende Mails an einen Intranetserver weiterleitet, das bewerkstellig ich mit:


cat /etc/postfix/transport

example.com smtp:[intranet.example.com]:25

Nun möchte ich die Mails zusätzlich auch lokal speichern, damit ich von extern auf die Mails zugreifen kann, wenn intranet-Server durch technische Störungen offline ist. Normalerweise greife ich per VPN auf den Intranet zu. Welche Möglichkeiten bestehen da?

lkwg82
13.11.09, 09:11
was sagt die Doku zu 'transpaorts'?

Ist es eine Rangfolge oder ein paralleles Benutzen der Transports?

undefined
13.11.09, 09:16
Stelle dir zuerst mal die Frage was sind SMTP und IMAP/POP3 für Protokolle.
Ich würde für deine zwecke ein Cached IMAP verwenden ;)

lkwg82
13.11.09, 09:23
also 'cached imap' (sonst findest du es nicht)

doppelte Datenhaltung (allgemein Redundanz) sollte man sehr bewußt wählen.

Mir war nicht bekannt, daß es cached imap gibt. Wenn das so ist, ist das natürlich der bessere Weg.

misterjack
18.11.09, 16:54
Cached-Imap ist keine Lösung, muss per SMTP die Mails an den Intranet übertragen. Gibts noch andere Möglichkeiten?

cane
18.11.09, 18:25
Warum greift der Intranet Server nicht einfach auf den externen Server zu?

mfg
cane

misterjack
20.11.09, 17:02
Die Möglichkeit besteht leider nicht, bzw. möchte ich eine generelle Möglichkeit, Mails lokal zu speichern und weiterzuleiten. man transport sagt dazu leider nichts.

undefined
21.11.09, 17:57
Dann nehme einen alias und pass auf das du keine bouncer verursachst.


benutzer: ziel_a, ziel_b

An sonsten ist Majordomo dein Freund.

misterjack
25.11.09, 04:58
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

* procmail:

/etc/postfix-two/transports

* smtp:[intranet.example.com]:25

In /etc/postfix/master.cf hinzufügen

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

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:

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.