J. Thullner: .forward-file: Weiterleitung aller Emails an ein best. Script: Hilfe, ich krieg's nicht raus!

Hallo,

was ich machen will, hört sich einfach an und ist es vielleicht auch. WIE ich das konkret zu machen habe, weiß ich allerdings nicht und kann es auch nirgends konkret rausfinden.
Mein Provider ist zwar bereit, dies zu machen, weiß jedoch auch nicht, wie man das macht. Funktionieren tut es aber:

Problemstellung:
Alle eingehenden Emails z.B. an die domain "abc.de" sollen an ein bestimmtes CGI-Skript von mir geleitet werden. Alle! Sowohl "info@abc.de" als auch "heuteistdienstag@kaffeklatsch.abc.de. Zur Verdeutlichung: Also egal, was vor dem @ steht und egal, ob nun eine Sub-domain vor der eigentlichen Domain steht...alles soll an das Skript weitergeleitet werden. Daß dies überhaupt möglich ist, zeigt der bekannteste Domain-Discounter...

Das Skript ist nicht das Problem, das müsste ich soweit voll hinkriegen.

Fragen:
Wie ich weiß, ist o.g. Anforderung mittels ".forward"-file zu realsieren. In dieses muss ich angeblich irgendwas wie dieses reinschreiben:
\user, " /home/html/meinscript"

(1) Wo habe ich dieses .forward-file abzulegen?? Muß ich das dem Provider geben, damit der das in irgendein megaspezielles Verzeichnis legt?? Auf meinem Webspeicher hab ich irgendso ein Wurzelverzeichnis, ...und dann noch ein "html"-Verzeichnis, in welches gegangen wird, wenn die Domain aufgerufen wird. (Daneben noch irgendwelche Log-Verzeichnisse usw.)
(2) Was ist in dem .forward-file anzugeben?
(3) Sind hier spezielle Nameserver-Angaben (irgendwas mit MX..) zu machen, so daß auch wirklich jede Email an egalwelchen usernamen (vor dem @) und egalwelche subdomain (nach dem @) angenommen wird??
(4) Gibt es vielleicht irgendwo Infos, wo man näheres darüber erfahren kann??

So, das war's dann glaub ich mal, was ich wissen müsste. Ich hoffe, diese Frage wird hier nicht von irgendjemand als unverschämt empfunden. Ich bin Tage gesurft, bis ich hier wenigstens etwas rausfinden konnte (.forward-file) und habe extrem lange benötigt, bis ich das Skript soweit hinbekommen habe...

Für jegliche Info oder jeglichen Tip, sollte diese auch nur eine Teilfrage betreffen, bin ich äußerst dankbar. Ebenso für eine DAU-gerechte Antwort, da ich zwar ein bisschen "FrontPage'ln" und mit CGI-Perl ein bisschen 'rumwursteln kann, aber von Servern, speziell Nameservern, deren Angaben und Möglichkeiten etc. nahezu absolut NULL Ahnung habe.

Danke im Voraus.

Jörg

  1. Alle eingehenden Emails z.B. an die domain "abc.de" sollen an ein bestimmtes CGI-Skript von mir geleitet werden. Alle!

    Hm, nachdem es für eine bestimmte funktioniert hat, wirst Du vermutlich die Fehlerbehandlungsroutine des Mail-Servers anschauen müssen, um Irrläufer der bereits etablierten Behandlung zuzuführen.

    (1) Wo habe ich dieses .forward-file abzulegen??

    Im Heimatverzeichnis der Benutzerkennung, an welche die E-Mail gesendet wurde. (So funktioniert es jedenfalls auf meiner UNIX-Kiste.)

    Auf meinem Webspeicher hab ich irgendso ein Wurzelverzeichnis, ...und dann noch ein "html"-Verzeichnis, in welches gegangen wird, wenn die Domain aufgerufen wird. (Daneben noch irgendwelche Log-Verzeichnisse usw.)

    Das klingt gut - Dein "Wurzelverzeichnis" ist wahrscheinlich Dein Heimatverzeichnis, die "html"-Geschichte kenne ich von Apache, der dies als Standardmechanismus unterstützt (dort heißt das Verzeichnis normalerweise "public_html").

    Wenn Du telnet-Zugang hast, kannst Du mal in der Shell "echo ~x" eingeben, wobei Du "x" durch Deinen Benutzernamen ersetzen mußt, oder "echo $HOME". Beides sollte den Wert Deines Heimatverzeichnisses ausgeben.

    (2) Was ist in dem .forward-file anzugeben?

    Entweder eine E-Mail-Adresse, an welche die ankommende Mail weitergeleitet werden soll (ich selbst nutze das dazu, automatisch generierte Mails mit Fehlermeldungen von irgendwelchen produktiven Servern an meinen Arbeitsplatz weiterzuleiten) oder der Aufruf eines Programms, welches die Mail verarbeiten soll. Dieser muß mit dem Pipe-Zeichen (senkrechter Strich) beginnen (damit der Auswerter es von einer Mail-Adresse unterscheiden kann, vermute ich).

    Du kannst auch mehrere Angaben durch Komma getrennt angeben. Das dürfen auch gemischte Angaben sein - Du kannst also eine ankommende Mail durchaus an mehrere andere Mail-Adressen weiterleiten und gleichzeitig auch noch von mehreren Programmen verarbeiten lassen ...

    (3) Sind hier spezielle Nameserver-Angaben (irgendwas mit MX..) zu machen, so daß auch wirklich jede Email an egalwelchen usernamen (vor dem @) und egalwelche subdomain (nach dem @) angenommen wird??

    Hm, da würde ich mal das Handbuch des POP3-Servers auf Deinem Rechner durchlesen und sehen, was der mit Mails macht, die er keinem definierten Postfach zuordnen kann - das ist ja wohl das Problem.
    Wenn Du es schaffst, diese in dasselbe Programm hineinzupipen wie bei den definierten Benutzerkennungen, dann ist alles okay.

    (4) Gibt es vielleicht irgendwo Infos, wo man näheres darüber erfahren kann??

    Ich habe mir nur die Manpage zu "forward" durchgelesen. (Mit Telnet "man forward" eingeben.)

    1. hallo!

      perfekte antwort! danke! und sollte die emails zb. durch
      abc.de IN MX 10 mail.abc.de
      gesteuert werden, so "passt" das ganze wohl durch
      hinzufügung der zeile:
      *abc.de IN MX ...

      insofern vermutlich hinzubringen :-)))

      nur das eine ist mir noch nicht ganz so klar: das .forward.file
      unterstützt dieses auch wildcards, so dass ich darin also z.b. folgendes angeben kann:

      * /home/www/meinscript

      ?? irgendwie müßte das gehen, gibt es doch die möglichkeit *alle* eingehenden emails (egal an welchen user der domain..) an eine bestimmte email weiterzuleiten. und ob email oder pfad für ein script scheint hier ja anscheinend egal.

      ach so: warum ich nicht einfach die emails eintragen kann: über 2.000 benutzer können ihre einstellungen komplett selbst ändern. die einzelnen nutzer sind allerdings in einer anderen datenbank drin, welches das script von mir abfragt.

      nochmals danke und nochmals danke im voraus für dieses (hoffentlich) letzte ding :-)

      gruss

      j. thullner

      Alle eingehenden Emails z.B. an die domain "abc.de" sollen an ein bestimmtes CGI-Skript von mir geleitet werden. Alle!

      Hm, nachdem es für eine bestimmte funktioniert hat, wirst Du vermutlich die Fehlerbehandlungsroutine des Mail-Servers anschauen müssen, um Irrläufer der bereits etablierten Behandlung zuzuführen.

      (1) Wo habe ich dieses .forward-file abzulegen??

      Im Heimatverzeichnis der Benutzerkennung, an welche die E-Mail gesendet wurde. (So funktioniert es jedenfalls auf meiner UNIX-Kiste.)

      Auf meinem Webspeicher hab ich irgendso ein Wurzelverzeichnis, ...und dann noch ein "html"-Verzeichnis, in welches gegangen wird, wenn die Domain aufgerufen wird. (Daneben noch irgendwelche Log-Verzeichnisse usw.)

      Das klingt gut - Dein "Wurzelverzeichnis" ist wahrscheinlich Dein Heimatverzeichnis, die "html"-Geschichte kenne ich von Apache, der dies als Standardmechanismus unterstützt (dort heißt das Verzeichnis normalerweise "public_html").

      Wenn Du telnet-Zugang hast, kannst Du mal in der Shell "echo ~x" eingeben, wobei Du "x" durch Deinen Benutzernamen ersetzen mußt, oder "echo $HOME". Beides sollte den Wert Deines Heimatverzeichnisses ausgeben.

      (2) Was ist in dem .forward-file anzugeben?

      Entweder eine E-Mail-Adresse, an welche die ankommende Mail weitergeleitet werden soll (ich selbst nutze das dazu, automatisch generierte Mails mit Fehlermeldungen von irgendwelchen produktiven Servern an meinen Arbeitsplatz weiterzuleiten) oder der Aufruf eines Programms, welches die Mail verarbeiten soll. Dieser muß mit dem Pipe-Zeichen (senkrechter Strich) beginnen (damit der Auswerter es von einer Mail-Adresse unterscheiden kann, vermute ich).

      Du kannst auch mehrere Angaben durch Komma getrennt angeben. Das dürfen auch gemischte Angaben sein - Du kannst also eine ankommende Mail durchaus an mehrere andere Mail-Adressen weiterleiten und gleichzeitig auch noch von mehreren Programmen verarbeiten lassen ...

      (3) Sind hier spezielle Nameserver-Angaben (irgendwas mit MX..) zu machen, so daß auch wirklich jede Email an egalwelchen usernamen (vor dem @) und egalwelche subdomain (nach dem @) angenommen wird??

      Hm, da würde ich mal das Handbuch des POP3-Servers auf Deinem Rechner durchlesen und sehen, was der mit Mails macht, die er keinem definierten Postfach zuordnen kann - das ist ja wohl das Problem.
      Wenn Du es schaffst, diese in dasselbe Programm hineinzupipen wie bei den definierten Benutzerkennungen, dann ist alles okay.

      (4) Gibt es vielleicht irgendwo Infos, wo man näheres darüber erfahren kann??

      Ich habe mir nur die Manpage zu "forward" durchgelesen. (Mit Telnet "man forward" eingeben.)

      1. nur das eine ist mir noch nicht ganz so klar: das .forward.file
        unterstützt dieses auch wildcards, so dass ich darin also z.b. folgendes angeben kann:
        * /home/www/meinscript
        ?? irgendwie müßte das gehen, gibt es doch die möglichkeit *alle* eingehenden emails (egal an welchen user der domain..) an eine bestimmte email weiterzuleiten. und ob email oder pfad für ein script scheint hier ja anscheinend egal.

        Ich glaube, Du hast hier ein Verständnisproblem.

        Es gibt nicht eine einzige .forward-Datei für das gesamte System, sondern jeder Benutzer hat seine eigenen. Du kannst also nicht innerhalb dieser Datei filtern, welche Mails wie weiterverarbeitet werden, sondern alle Mails an diesen Benutzer werden allen Weiterverarbeitungen unterzogen, die genau dieser Empfänger definiert hat.

        Deshalb ist Dein Problem mit den "sonstigen" E-Mail-Adressen auch nicht über diesen Mechanismus lösbar - da mußt Du Dir einen Mechanismus direkt im Mail-Server suchen.

        Die mehreren Angaben in ,forward bedeuten insbesondere nicht, was Du glaubst.
        Du hast im Beispiel gelesen, daß eine Mail-Adresse und ein Programmaufruf drin stand, und geraten, daß dies bedeute, für Mails an diese Mail-Adresse sei dieser Programmaufruf zu verwenden. Dies ist aber nicht der Fall: Es bedeutet vielmehr, daß alle Mails an die Adresse des Besitzers der .forward-Datei *sowohl* an die angegebene Mail-Adresse *als auch* an den angegebenen Filter übergeben werden sollen.
        Das ist nicht das, was Du haben willst ...

        ach so: warum ich nicht einfach die emails eintragen kann: über 2.000 benutzer können ihre einstellungen komplett selbst ändern. die einzelnen nutzer sind allerdings in einer anderen datenbank drin, welches das script von mir abfragt.

        Hm, das ist eine Frage Deines Systemdesigns.

        Der Systemadministrator könnte beispielsweise beim Anlegen des Verzeichnisses eines neuen Benutzers in diesem Verzeichnis einen symbolic link auf eine einzige, systemweit einheitliche .forward-Datei anlegen.

        Und falls ein Benutzer auf die Idee kommt, diese zu löschen, dann kann man das via cron-Job immer noch periodisch prüfen und dem "Saboteur" eine "Abmahnung" schicken (bzw. den symbolic link automatisch wieder anlegen).

        Alle eingehenden Emails z.B. an die domain "abc.de" sollen an ein bestimmtes CGI-Skript von mir geleitet werden. Alle!

        Nicht so viel zitieren beim Posten!!! :-(