PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mit postfix alle mails empfangen



smoe
19.09.06, 17:47
Hallo,

ich setze gerade einen Test-Webserver für unsere PHP-Projekte auf.
Dafür benötige ich ein System, welches alle unbekannten Mails (mit unbekannten Domains) in ein dafür vorgesehenes Postfach schiebt.
Als System benutze ich SuSE 10.0 mit Postfix.
Kann mir jemand sagen, wie das geht oder mir ein Howto empfehlen, wo dieses Problem beschrieben wird? Ich hab leider nirgends was gefunden; lässt sich auch schlecht suchen.

Danke im Voraus.

ciao
smoe

Thorashh
19.09.06, 20:10
So freihändig würde ich sagen du brauchst folgendes:

/etc/postfix/virtual

@domain.de user1@domain2.de
/etc/postfix/main.cf

virtual_maps = hash:/etc/postfix/virtual
postmap nicht vergessen.

Das ganze läuft im übrigen unter dem Stichwort catchall Postfach/Adresse

tschloss
19.09.06, 20:12
Und wo kommen die Mails her? Ich meine, der Server wird ja normalerweise keine Mails erhalten, für die er nicht MX ist (außer er sitzt irgendwo als Relay in einer Kette).
Oder soll das Mails behandeln, die die User eingeben und ungültige Adressen / Domains besitzen? Das wiederum würde ja Zustellfehler verursachen, die man auzswerten kann. Domains kann man aber auch per Skript abfragen.

Greetz
Thomas

smoe
20.09.06, 08:46
@Thorashh: so wie ich das verstanden habe, muß man das für jede Domain machen, an die Mails gehen könnten. Ich will hier aber nicht jede mögliche Domain eintragen, sondern eher sowas wie "alle Domains außer ...". geht das irgendwie?

Die Mails kommen von den PHP-Projekten. Bspw. haben wir einen Online-Shop, der bei diversen Aktionen (z.B. die Lieferzeit eines Produktes ändert sich) alle Kunden automatisch anschreibt, die dieses Produkt bestellt haben. Logischerweise sollen auf einem Testsystem nicht wirklich die Kunden angeschrieben, sondern die Mails abgefangen werden. (Der Server ist also ein Relay)

ciao

ulf

tschloss
20.09.06, 10:36
Aha, es geht also um ein stinknormales Relay (das ist wohl nicht dein Problem, oder?). Deine Frage bezieht sich dann nur auf die Testphase, wo die Mails nicht rausgehen sollen. Da fallen mir zwei DInge ein:
1. "defer_transports" (oder so Ähnlich) -> damit kann man die Mails in der Ausgangsqueue festhalten bis zu einem flush.
2. Ein zweiter Mailserver, der dann in der Testphase als Relay-Ziel dient, aber als "Totes Ende" konfiguriert ist. Das müßte man evtl. noch zu Ende denken. Postfix bietet einige Hooks, wo man Verarbeitungen einhängen kann, so dass man alle Mails letztlich in einem Maildir- oder Mbox-Format sammelt und dann mit einem Mailprogramm schön anschauen kann. Oder man schaut, ob ein Rewrite aller Empfängerdomains auf eine zum Ziel (catchall auf diese Domain) führt.
Evtl. reicht es euch auch, wenn man diesen MTA auch für alle möglichen Domains (T-Online.de, gmx.net, web.de etc. zuständig erklärt).

Möglicherweise gibt es auch eine ganz einfache andere Variante...
Greetz
Thomas

smoe
20.09.06, 11:19
Aha, es geht also um ein stinknormales Relay (das ist wohl nicht dein Problem, oder?). Deine Frage bezieht sich dann nur auf die Testphase, wo die Mails nicht rausgehen sollen.
Die Mails sollen auf diesem Server niemals rausgehen. Wie gesagt, es ist ein Testserver für unsere PHP-Projekte, also Apache/PHP/MySQL und Postfix. Die Programme senden Mails an Kunden, die nicht verschmissen, sondern abgefangen und gelesen werden sollen können (huii). Demnach muss der Mailserver ja erstmal als Relay konfiguriert sein, damit er die Mails überhaupt annimmt, für deren Postfächer er nicht zuständig ist.


Da fallen mir zwei DInge ein:
1. "defer_transports" (oder so Ähnlich) -> damit kann man die Mails in der Ausgangsqueue festhalten bis zu einem flush.
Und zu welchem Zweck? Ich hätte es gern etwas komfortabler, als in der Queue auf Dateisystemebene mit less in den Mails rumzustochern.


2. Ein zweiter Mailserver, der dann in der Testphase als Relay-Ziel dient, aber als "Totes Ende" konfiguriert ist. Das müßte man evtl. noch zu Ende denken.
Postfix bietet einige Hooks, wo man Verarbeitungen einhängen kann, so dass man alle Mails letztlich in einem Maildir- oder Mbox-Format sammelt und dann mit einem Mailprogramm schön anschauen kann.

Das wäre eigentlich alles, was ich brauche. Allerdings fehlt mir hier das Wissen. Ich weiß, das man mit procmail an versch. Stellen filtern kann, aber auch die Konfiguration von Procmail gehört nicht zu meinen Stärken.


Oder man schaut, ob ein Rewrite aller Empfängerdomains auf eine zum Ziel (catchall auf diese Domain) führt.

Das wäre wahrscheinlich nicht so sinnvoll, da wir schon gerne wüssten, wer die Mail gekriegt hätte (um auch die Adressierung überprüfen zu können)


Evtl. reicht es euch auch, wenn man diesen MTA auch für alle möglichen Domains (T-Online.de, gmx.net, web.de etc. zuständig erklärt).

Möglicherweise gibt es auch eine ganz einfache andere Variante...
Greetz
Thomas
Dann hab ich sie aber immer noch nicht gefunden. Ich schau mir mal procmail etwas genauer an.

ciao und danke für eure aufmerksamkeit

ulf

smoe
20.09.06, 14:28
Ok, nach wiederum 'nem halben Tag hab ich die Lösung gefunden. Sie heißt

default_transport = procmail
und wird in der 'main.cf' eingetragen. Das ganze funktioniert so:
die Variable 'default_transport' enthält das Programm, welches Mails bearbeitet, die weder lokal zugestellt werden, noch als Relaydomains eingetragen sind. Genaueres hierüber finden zumindest SuSE-Anhänger unter '/etc/postfix/transport'. Die Mails werden also 'procmail' übergeben und der Eintrag

:0
! postmaster
in der 'procmailrc' übergibt die Mail praktisch ungesehen an den lokalen Postmaster. der ist gealiased auf root und der widerum auf mein Postfach.

e voila!

ciao

ulf

tschloss
20.09.06, 15:22
Ok, nach wiederum 'nem halben Tag hab ich die Lösung gefunden. Sie heißt

default_transport = procmail
und wird in der 'main.cf' eingetragen. Das ganze funktioniert so:
die Variable 'default_transport' enthält das Programm, welches Mails bearbeitet, die weder lokal zugestellt werden, noch als Relaydomains eingetragen sind. Genaueres hierüber finden zumindest SuSE-Anhänger unter '/etc/postfix/transport'. Die Mails werden also 'procmail' übergeben und der Eintrag

:0
! postmaster
in der 'procmailrc' übergibt die Mail praktisch ungesehen an den lokalen Postmaster. der ist gealiased auf root und der widerum auf mein Postfach.

e voila!

ciao

ulf

Sehr nice!

Thomas