Postfix: Eintrag in alias UND transport
Hallo, ich tüfftle immernoch am Postfix rum. Jetzt habe ich das Problem das eine eingehende Mail an eine bestimmte Adresse an eine Mailbox gehen soll UND durch ein Script gepumpt werden muss. Dem Script muss ich leider die Variablen für Sender und Mailbox übergeben was ja heißt das ich dies in der Transport erledigen muss. Die Mail an die Mailbox wird ja über die alias gesteuert. Nun kann ich ja für die selbe Adresse nicht einen Eintrag in der Transport UND der alias haben weil die transport vorrang hat und die alias nicht weiter beachtet wird. Hat jemand eine Idee wie ich das dennoch lösen kann? Gruß Daniel -- Daniel Spannbauer Systembetreuung marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Auf der Wies 8, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 68255 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Daniel Am Mittwoch, 5. September 2007 schrieb Daniel Spannbauer:
Jetzt habe ich das Problem das eine eingehende Mail an eine bestimmte Adresse an eine Mailbox gehen soll UND durch ein Script gepumpt werden muss. Dem Script muss ich leider die Variablen für Sender und Mailbox übergeben was ja heißt das ich dies in der Transport erledigen muss. Die Mail an die Mailbox wird ja über die alias gesteuert.
Nun kann ich ja für die selbe Adresse nicht einen Eintrag in der Transport UND der alias haben weil die transport vorrang hat und die alias nicht weiter beachtet wird.
Hat jemand eine Idee wie ich das dennoch lösen kann?
ich habe in meiner Filterkette ein procmail mit drin, der solche Sachen für mich erledigt. Du musst in deinem konzept nur eine geeignete Stelle finden wo sich das Filter einbinden lässt. Das Problem dabei ist keine Loop entstehen zu lassen. Wie procmail in Postfix eingebunden werden kann ist hinreichend dokumentiert. bei mir sieht das so aus: aus master.cf # hier wird procmail nach dem wiedereinwurf durch die virenscanner # kette als filter vereinbart localhost:smtp-backdoor inet n - y - - smtpd -o content_filter=procmail:filter # das ist der procmail transport procmail unix - n n - - pipe flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient} aus procmailrc: # comment this out for logging # LOGFILE=/tmp/procmail.log # set this to yes for more verbose output VERBOSE=NO HBFSENDER=$1 SHIFT=1 DROPPRIVS=YES # hier kommt der eigentliche procmailrc inhalt # here we send the mails out back to postfix :0 | /usr/sbin/sendmail -i -f "$HBFSENDER" -- "$@" # end of procmailrc Gruss Falk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Falk Sauer schrieb:
Hi Daniel
Am Mittwoch, 5. September 2007 schrieb Daniel Spannbauer:
Jetzt habe ich das Problem das eine eingehende Mail an eine bestimmte Adresse an eine Mailbox gehen soll UND durch ein Script gepumpt werden muss. Dem Script muss ich leider die Variablen für Sender und Mailbox übergeben was ja heißt das ich dies in der Transport erledigen muss. Die Mail an die Mailbox wird ja über die alias gesteuert.
Nun kann ich ja für die selbe Adresse nicht einen Eintrag in der Transport UND der alias haben weil die transport vorrang hat und die alias nicht weiter beachtet wird.
Hat jemand eine Idee wie ich das dennoch lösen kann?
ich habe in meiner Filterkette ein procmail mit drin, der solche Sachen für mich erledigt. Du musst in deinem konzept nur eine geeignete Stelle finden wo sich das Filter einbinden lässt. Das Problem dabei ist keine Loop entstehen zu lassen. Wie procmail in Postfix eingebunden werden kann ist hinreichend dokumentiert.
Mir kam gerade noch ne andere Idee: Ich richte nen alias "xxx" ein, den ich in der Transport eben nen anderen Transport gebe. Dann kann ich in der alias-Table die Mailbox und xxx angeben. Dann wandert die Mail an den User xxx (welcher ja in der Transport nen anderen Weg geht) und an die reale Mmailbox. Müsste doch gehen, oder? Gruß Daniel -- Daniel Spannbauer Systembetreuung marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Auf der Wies 8, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 68255 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Daniel Spannbauer wrote:
Hallo,
ich tüfftle immernoch am Postfix rum.
Jetzt habe ich das Problem das eine eingehende Mail an eine bestimmte Adresse an eine Mailbox gehen soll UND durch ein Script gepumpt werden muss. Dem Script muss ich leider die Variablen für Sender und Mailbox übergeben was ja heißt das ich dies in der Transport erledigen muss. Die Mail an die Mailbox wird ja über die alias gesteuert.
Nun kann ich ja für die selbe Adresse nicht einen Eintrag in der Transport UND der alias haben weil die transport vorrang hat und die alias nicht weiter beachtet wird.
Hat jemand eine Idee wie ich das dennoch lösen kann?
Üblicherweise macht man das, indem ein Alias auf sich selbst UND auf den Transport zeigt. /etc/aliases: user: user, script script: "|path/to/script with parameters" Damit kannst du komplett auf den Transport verzichten. Oder du setzt halt den Transport für den user "script". -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Sandy, Sandy Drobic schrieb:
Üblicherweise macht man das, indem ein Alias auf sich selbst UND auf den Transport zeigt.
/etc/aliases: user: user, script script: "|path/to/script with parameters"
Kennt die alias Variablen wie $sender, $mailbox usw.? Meines wiessens nach nicht.
Damit kannst du komplett auf den Transport verzichten. Oder du setzt halt den Transport für den user "script".
So hatte ich mri das gedacht, wird mir nichts anderes bleiben. Gruß Daniel
-- Daniel Spannbauer Systembetreuung marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Auf der Wies 8, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 68255 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Daniel Spannbauer schrieb:
Hallo Sandy,
Sandy Drobic schrieb:
Üblicherweise macht man das, indem ein Alias auf sich selbst UND auf den Transport zeigt.
/etc/aliases: user: user, script script: "|path/to/script with parameters"
Damit kannst du komplett auf den Transport verzichten. Oder du setzt halt den Transport für den user "script".
SO, ich hab das jetzt mal ausprobiert. Das ganze basiert bei mir auf eine regexp-Table da ich WIldcards zum Filtern brauche. Der Eintrag in der alias.regexp sieht wie folgt aus: /^xxx[\/_].*$/ test Das funktioniert auch (sehe ich an den Logs. für test ist in der Transport (auch eine regexp-table) ein eintrag angelegt: /^test$/ script für script ist in der master.cf ein transport angelegt. Wenn ich jetzt eine mail an xxx/irgendwas schreibe krieg ich in den Logs nur die Meldung das er den User "test" nicht kennt. Eine Abfrage der transport.regexp durch postmap -q fand den Eintrag. Jemand ne Idee? Gruß Daniel
So hatte ich mri das gedacht, wird mir nichts anderes bleiben.
Gruß
Daniel
-- Daniel Spannbauer Systembetreuung marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Auf der Wies 8, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 68255 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
SO, ich hab das jetzt mal ausprobiert. Das ganze basiert bei mir auf eine regexp-Table da ich WIldcards zum Filtern brauche.
Der Eintrag in der alias.regexp sieht wie folgt aus:
/^xxx[\/_].*$/ test
Das funktioniert auch (sehe ich an den Logs.
für test ist in der Transport (auch eine regexp-table) ein eintrag angelegt:
/^test$/ script
Das hier ist der Fehler.......die transport schaut sich die komplette Adresse an, nicht nur den Namen der Mailbox vor dem "@" Also den Eintrag abgeändert in /^test.*/ und schon gehts. Gruß Daniel -- Daniel Spannbauer Systembetreuung marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Auf der Wies 8, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 68255 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Wednesday 05 September 2007 11:08, Daniel Spannbauer wrote:
Üblicherweise macht man das, indem ein Alias auf sich selbst UND auf den Transport zeigt.
/etc/aliases: user: user, script script: "|path/to/script with parameters"
Kennt die alias Variablen wie $sender, $mailbox usw.? Meines wiessens nach nicht.
Nein, aber: http://www.postfix.org/local.8.html
Damit kannst du komplett auf den Transport verzichten. Oder du setzt halt den Transport für den user "script".
So hatte ich mri das gedacht, wird mir nichts anderes bleiben.
-- Andreas -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Daniel Spannbauer wrote:
Hallo,
ich tüfftle immernoch am Postfix rum.
Jetzt habe ich das Problem das eine eingehende Mail an eine bestimmte Adresse an eine Mailbox gehen soll UND durch ein Script gepumpt werden muss. Dem Script muss ich leider die Variablen für Sender und Mailbox übergeben was ja heißt das ich dies in der Transport erledigen muss. Die Mail an die Mailbox wird ja über die alias gesteuert.
Nun kann ich ja für die selbe Adresse nicht einen Eintrag in der Transport UND der alias haben weil die transport vorrang hat und die alias nicht weiter beachtet wird.
Hat jemand eine Idee wie ich das dennoch lösen kann?
Üblicherweise macht man das, indem ein Alias auf sich selbst UND auf den Transport zeigt.
/etc/aliases: user: user, script script: "|path/to/script with parameters"
Damit kannst du komplett auf den Transport verzichten. Oder du setzt halt den Transport für den user "script".
Also, leider klappt das nicht wie erhofft. Wenn ich (jetzt mal obige Config genommen) eine Mail an "user" schreibe geht eine Mail an "user" (soll ja auch so sein) und eine geht an "script" welches als transport ein Script angegeben hat. Funktioniert auch soweit. Nur tauscht Postfix wohl den Empfänger aus. In der Mail die an "script" übergeben wird steht halt leider auch "script" im Empfänger, nicht der ursprüngliche. Aber genau DEN brauche ich. In Sendmail funktioniert das "script: "|path/to/script with parameters" in der alias noch mit unserem Script weil Sendmail $sender und $mailbox automatisch mit übergibt. Postfix leider nicht. Jemand noch eine Idee wie man das lösen kann? Gruß Daniel
-- Daniel Spannbauer Systembetreuung marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Auf der Wies 8, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 68255 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Daniel Spannbauer wrote:
Üblicherweise macht man das, indem ein Alias auf sich selbst UND auf den Transport zeigt.
/etc/aliases: user: user, script script: "|path/to/script with parameters"
Damit kannst du komplett auf den Transport verzichten. Oder du setzt halt den Transport für den user "script".
Also, leider klappt das nicht wie erhofft.
Wenn ich (jetzt mal obige Config genommen) eine Mail an "user" schreibe geht eine Mail an "user" (soll ja auch so sein) und eine geht an "script" welches als transport ein Script angegeben hat. Funktioniert auch soweit. Nur tauscht Postfix wohl den Empfänger aus. In der Mail die an "script" übergeben wird steht halt leider auch "script" im Empfänger, nicht der ursprüngliche.
Aber genau DEN brauche ich.
In Sendmail funktioniert das "script: "|path/to/script with parameters" in der alias noch mit unserem Script weil Sendmail $sender und $mailbox automatisch mit übergibt. Postfix leider nicht.
Jemand noch eine Idee wie man das lösen kann?
Zwei Möglichkeiten: 1) Du kannst die Mail über einen Pipetransport in das Script lenken, das Script muss jedoch wieder dafür sorgen, dass die Mail wieder per sendmail binary an Postfix übergeben wird. Wenn dies nur für einige User geschehen soll, dann über ein check_recipient_access mit Aktion FILTER. 2) Zwei Instanzen von Postfix mit doppelter Umschreibung. Die Wartung und Einrichtung von Postfix wird damit einiges komplizierter. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Sandy Drobic schrieb:
Daniel Spannbauer wrote:
Üblicherweise macht man das, indem ein Alias auf sich selbst UND auf den Transport zeigt.
/etc/aliases: user: user, script script: "|path/to/script with parameters"
Damit kannst du komplett auf den Transport verzichten. Oder du setzt halt den Transport für den user "script".
Also, leider klappt das nicht wie erhofft.
Wenn ich (jetzt mal obige Config genommen) eine Mail an "user" schreibe geht eine Mail an "user" (soll ja auch so sein) und eine geht an "script" welches als transport ein Script angegeben hat. Funktioniert auch soweit. Nur tauscht Postfix wohl den Empfänger aus. In der Mail die an "script" übergeben wird steht halt leider auch "script" im Empfänger, nicht der ursprüngliche.
Aber genau DEN brauche ich.
In Sendmail funktioniert das "script: "|path/to/script with parameters" in der alias noch mit unserem Script weil Sendmail $sender und $mailbox automatisch mit übergibt. Postfix leider nicht.
Jemand noch eine Idee wie man das lösen kann?
Zwei Möglichkeiten:
1) Du kannst die Mail über einen Pipetransport in das Script lenken, das Script muss jedoch wieder dafür sorgen, dass die Mail wieder per sendmail binary an Postfix übergeben wird. Wenn dies nur für einige User geschehen soll, dann über ein check_recipient_access mit Aktion FILTER.
2) Zwei Instanzen von Postfix mit doppelter Umschreibung. Die Wartung und Einrichtung von Postfix wird damit einiges komplizierter.
Ich konnte das gestern noch anders lösen. Es werden bei einem Pipe auf ein Script in der alias-Tabelle sehr wohl Variablen mit übergeben. Diese sind nachzulesen in "man local". Ich hatte hier nur $SENDER und $USER benötigt. Diese kann ich dann im aufgerufenen Script wieder auslesen. Damit sollte sich das Problem hoffentlich endgültig gelöst haben. Gruß Daniel -- Daniel Spannbauer Systembetreuung marco Systemanalyse und Entwicklung GmbH Tel +49 8333 9233-27 Fax -11 Auf der Wies 8, D 87727 Babenhausen Mobil +49 171 4033220 http://www.marco.de/ Email ds@marco.de Geschäftsführer Martin Reuter HRB 68255 Amtsgericht München -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Daniel Spannbauer wrote:
Ich konnte das gestern noch anders lösen. Es werden bei einem Pipe auf ein Script in der alias-Tabelle sehr wohl Variablen mit übergeben. Diese sind nachzulesen in "man local". Ich hatte hier nur $SENDER und $USER benötigt. Diese kann ich dann im aufgerufenen Script wieder auslesen.
Damit sollte sich das Problem hoffentlich endgültig gelöst haben.
Sehr schön. Wofür genau brauchtest du diese Info im Script? Vacation? -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (4)
-
Andreas Winkelmann
-
Daniel Spannbauer
-
Falk Sauer
-
Sandy Drobic