David Mously: CGI via E-Mail ansprechen

Hallo,

vor einigen Tagen habe ich diese Frage schon mal hier gestellt, sie
aber strategisch ungünstig unter einem abschreckend langen
und komplizierten Posting als "PS:" versteckt (<89311.html>).

Deswegen poste ich sie einfach nochmal:

Ich habe mal gehört, dass man die CGI-Schnittstelle auch via
E-Mail ansprechen kann und den Query-String einfach ins Subject
oder in den Body schreibt. Gibt es da spezielle Server/
Dienstleister die das anbieten? Wie funktioniert das?

MfG
David

;.)   (<- eigentlich ein Tippfehler. Erinnert mich aber ein wenig
          an Cindy Crawford, deshalb lasse ichs mal so stehn *g*)

<img src="http://www.mously.com/banner/170_24.gif" alt="">

  1. Hallo David

    Hallo,

    Ich habe mal gehört, dass man die CGI-Schnittstelle auch via
    E-Mail ansprechen kann und den Query-String einfach ins Subject
    oder in den Body schreibt. Gibt es da spezielle Server/
    Dienstleister die das anbieten? Wie funktioniert das?

    Das macht IMHO keinen Sinn, da CGI ja "nur" die Schnittstelle zwischen Webserver und Applikation ist.

    Allerdings ist es ziemlich einfach (zumindestens mit Perl) einen POP3 Client zu schreiben, der Mails abholt, z.B. das Subjekt ausliest und irgendwas damit anstellt. Das koennte man natuerlich auch per CGI-Script machen.

    Falls interesse, kann ich Dir mal ein kleines Bsp. mailen.
    Schau dir mal das Modul Net::POP3 an. Ist bei Activeperl dabei (perldoc Net::POP3), ansonsten bei < http://www.cpan.org>.

    MfG
    David

    ;.)   (<- eigentlich ein Tippfehler. Erinnert mich aber ein wenig
              an Cindy Crawford, deshalb lasse ichs mal so stehn *g*)

    *G* russ
       Kai

    1. Hallo Kai,

      Das macht IMHO keinen Sinn, da CGI ja "nur" die Schnittstelle zwischen Webserver und Applikation ist.

      Richtig, ...

      Allerdings ist es ziemlich einfach (zumindestens mit Perl) einen POP3 Client zu schreiben, der Mails abholt, z.B. das Subjekt ausliest und irgendwas damit anstellt. Das koennte man natuerlich auch per CGI-Script machen.

      ...daher löst _das_ nicht mein Problem. Denn das Script in deinem
      Beispiel (wenn ich es richtig verstanden habe) wird ja erst dann
      aktiv, wenn es z.B. über eine Website aufgerufen wird.

      Was ich möchte, ist den Query-string per E-mail zu senden, damit das
      Script aufzurufen und das Ergebnis ebenfalls per E-mail erhalten.

      Ich habe mal von einem Dienst an irgendeiner Uni gehört, der so
      etwas anbietet.

      MfG
      David

      <img src="http://www.mously.com/banner/170_24.gif" alt="">

      1. Hallo,

        Hallo Kai,

        Das macht IMHO keinen Sinn, da CGI ja "nur" die Schnittstelle zwischen Webserver und Applikation ist.

        doch, das macht u.U. sogar großen Sinn!!!
        Du kannst damit erfassen, ob jemand die email gelesen hat!

        Und wie geht es?
        Ganz einfach, es ist eine Mischung aus virtuellem Bildaufruf (Fliegenschisstechnik) und CGI ODER Javascript und CGI...

        1. Bild
          <img src="http://www.domain.de/bild.cgi?paramter1=blabla">

        2. JavaScript
          <script language="Javascript" src="http://www.domain.de/script.cgi?paramter1=blabla"></script>

        Wie geht das nun?

        Im Fall 1) macht man per CGI was mit dem Parameter, sendet per:
        print "Location: image.gif\n";
        einfach ein Bild zurück, damit die Anweisung in der (HTML) Mail befriedigt wird.
        Fall 2) ist noch einfacher, denn man muß eigentlich gar nichts zurückliefern!

        Ich hoffe, das ist es, was Du wolltest?

        Reiner

        1. Hallo Reiner

          Hallo,

          Hallo Kai,

          David schrieb:

          Ich habe mal gehört, dass man die CGI-Schnittstelle auch via
          E-Mail ansprechen kann und den Query-String einfach ins Subject
          oder in den Body schreibt. Gibt es da spezielle Server/
          Dienstleister die das anbieten? Wie funktioniert das?

          Kai schrieb:

          Das macht IMHO keinen Sinn, da CGI ja "nur" die Schnittstelle
          zwischen Webserver und Applikation ist.

          Reiner schrieb:

          doch, das macht u.U. sogar großen Sinn!!!

          Nein, denn das CGI hat _keine_ eigene eMail-Adresse ; )
          Man kann per CGI-Skript POP3-Mailbox bzw. Webkonto abfragen und wie ueblich irgendein Ergebnis an den Browser / per Mail zurueckliefern.

          [... Fliegenschisstechnik ...]

          Das verstehe ich nicht.

          Ich hoffe, das ist es, was Du wolltest?
          Reiner

          Gruss
            Kai

          1. hallo,
            ich hab' einmal ein Perscript gechrieben, daß den inhalt von mails ausliest, auswertet und dann in einer Datenbank bestimmet einträge macht. Außerdem sind Attachments in einer Verzeichnis-struktur untergebracht worden.
            Es ging da um Projektberichte, die Außendienst-Mitarbeiter einer Firma nach hause schicken.
            Dazu wurde ein Mail-Account angelegt, an den die Mitarbeiter ihre Berichte senden konnten.
            Da der Mail-Server ein Linux-Rechner ist, war es relativ einfach, das Mail durch ein Perlscript zu jagen. Einfach im '.forward'-File im User-Home das Perlscript angeben, und dannflutschte es schon.
            Das Script hat auch diverse Mails weitergeschickt, z.B.: ein Reply, oder im Fehlerfalle wurde das ganze mail weitergeleitet an einen Benutzer, der das Mail dann manuell nachbearbeitet hat.

            Cih hoffe, daß dies eine Anregung zur Lösung Deines Problems ist.

            Grüße
            Klaus

          2. Reiner schrieb:

            doch, das macht u.U. sogar großen Sinn!!!

            Nein, denn das CGI hat _keine_ eigene eMail-Adresse ; )
            Man kann per CGI-Skript POP3-Mailbox bzw. Webkonto abfragen und wie ueblich irgendein Ergebnis an den Browser / per Mail zurueckliefern.

            Ich hatte die ursprüngliche Frage ganz anders verstanden.
            David wollte doch, daß eine Mail einen CGI-Aufruf initiert, oder?
            Von Mailabfragen via CGI kann ich nichts erkennen?

            [... Fliegenschisstechnik ...]

            Das verstehe ich nicht.

            Unsichtbarer Punkt, der Script ausführt... :-)

            Reiner

            P.S.: Ich schicke Dir mal eine Mail, siehst dann, was ich meine!

      2. Hallo David

        Hallo Kai,

        Allerdings ist es ziemlich einfach (zumindestens mit Perl) einen POP3 Client zu schreiben, der Mails abholt, z.B. das Subjekt ausliest und irgendwas damit anstellt. Das koennte man natuerlich auch per CGI-Script machen.

        ...daher löst _das_ nicht mein Problem. Denn das Script in deinem
        Beispiel (wenn ich es richtig verstanden habe) wird ja erst dann
        aktiv, wenn es z.B. über eine Website aufgerufen wird.

        Nein, denn es ist momentan kein CGI - Script.

        Was ich möchte, ist den Query-string per E-mail zu
        senden,damit das Script aufzurufen und das Ergebnis ebenfalls per
        E-mail erhalten.

        Ja klar aber Du brauchst ja erstmal etwas, das die ganze Prozedur ausloest, naemlich ein Programm (z.B. Perlskript), das in bestimmten Zeitabstaenden nachschaut ob neue Mail angekommen ist, wenn ja, den Query-String im Subjekt/Body auswertet, etwas damit macht (z.B. irgendwelche weiteren Skripte ausfuehrt) und das Ergebnis per SMTP-Client (z.B. Sendmail) zurueckschickt.

        Ich habe mal von einem Dienst an irgendeiner Uni gehört, der so
        etwas anbietet.

        Ich kann mir nicht vorstellen, das die etwas anderes machen. OK, die Uni wird einen eigenen POP3-Server haben aber das ist ja nicht noetig.

        MfG
        David

        Gruss
           Kai

        1. Hallo,

          Hallo David

          Hallo Kai,

          Allerdings ist es ziemlich einfach (zumindestens mit Perl) einen POP3 Client zu schreiben, der Mails abholt, z.B. das Subjekt ausliest und irgendwas damit anstellt. Das koennte man natuerlich auch per CGI-Script machen.

          ...daher löst _das_ nicht mein Problem. Denn das Script in deinem
          Beispiel (wenn ich es richtig verstanden habe) wird ja erst dann
          aktiv, wenn es z.B. über eine Website aufgerufen wird.

          Nein, denn es ist momentan kein CGI - Script.

          Das nicht, aber der Gedanke vom David funktioniert dennoch!
          Was spricht dagegen, daß die (HTML) Mail automatisch ein Script auf einem Server ausführt?

          Was ich möchte, ist den Query-string per E-mail zu
          senden,damit das Script aufzurufen und das Ergebnis ebenfalls per
          E-mail erhalten.

          Das geht!

          Ja klar aber Du brauchst ja erstmal etwas, das die ganze Prozedur ausloest, naemlich ein Programm (z.B. Perlskript), das in bestimmten Zeitabstaenden nachschaut ob neue Mail angekommen ist, wenn ja, den Query-String im Subjekt/Body auswertet, etwas damit macht (z.B. irgendwelche weiteren Skripte ausfuehrt) und das Ergebnis per SMTP-Client (z.B. Sendmail) zurueckschickt.

          Falsch!!! Es funktioniert anders!

          Ich habe mal von einem Dienst an irgendeiner Uni gehört, der so
          etwas anbietet.

          Ich kann mir nicht vorstellen, das die etwas anderes machen. OK, die Uni wird einen eigenen POP3-Server haben aber das ist ja nicht noetig.

          MfG
          David

          Gruss
             Kai

  2. Hallo Kai, Reiner, Klaus,

    Zuerst einmal vielen Dank für Eure Hilfe. :-)

    Dennoch scheine ich Schwierigkeiten zu haben, mich allgmein-
    verständlich auszudrücken...   ;-#

    Meine Frage:

    Wenn ich ein CGI-Script aufrufe, schreibe ich ja normalerweise in
    die Adresszeile des Browsers z.B.:

    http://www.infoseek.de/seek/s.cgi?qt=selfhtml&sv=IS&col=all

    Damit fordere ich das Suchscript bei Infoseek auf, nach selfhtml zu
    suchen.

    Was ich suche ist eine Möglichkeit, diesen String in das Subject
    (oder in den Body) einer E-Mail zu schreiben, und das ganze an einen
    bestimmten Server zu schicken.

    Dieser Server parst dann die Subject-Zeile, ruft via HTTP das
    CGI-Script (Infoseek) auf, wartet die Ausgabe ab und schickt diese
    dann via (HTML?-)Mail an den Absender zurück.

    Wie kann ich einen solchen Dienst nutzen?
    Kennt jemand Adressen und /oder Hintergrundinformationen?

    MfG
    David

    <img src="http://www.mously.com/banner/170_24.gif" alt="">

    1. Hallo David,

      Meine Frage:

      Wenn ich ein CGI-Script aufrufe, schreibe ich ja normalerweise in
      die Adresszeile des Browsers z.B.:

      http://www.infoseek.de/seek/s.cgi?qt=selfhtml&sv=IS&col=all

      ich glaube dann, Dich schon richtig verstanden zu haben!
      Hol mal die Mail ab, die ich Dir geschickt habe!

      Du kannst in HTML mails auch Javascript ausführen, so wäre es möglich mittels:

      <SCRIPT LANGUAGE="JavaScript">
              <!--
              document.location.href="http://www.infoseek.de/seek/s.cgi?qt=selfhtml&sv=IS&col=all";
              //-->
              </SCRIPT>

      ...den Leser (der Mail) zu "entführen"!

      Reiner

    2. Hallo David

      Hallo Kai, Reiner, Klaus,

      Meine Frage:

      Wenn ich ein CGI-Script aufrufe, schreibe ich ja normalerweise in
      die Adresszeile des Browsers z.B.:

      http://www.infoseek.de/seek/s.cgi?qt=selfhtml&sv=IS&col=all

      Damit fordere ich das Suchscript bei Infoseek auf, nach selfhtml
      zu suchen.

      Was ich suche ist eine Möglichkeit, diesen String in das Subject
      (oder in den Body) einer E-Mail zu schreiben, und das ganze an
      einen bestimmten Server zu schicken.

      Dieser Server parst dann die Subject-Zeile, ruft via HTTP das
      CGI-Script (Infoseek) auf, wartet die Ausgabe ab und schickt diese
      dann via (HTML?-)Mail an den Absender zurück.

      Wie kann ich einen solchen Dienst nutzen?
      Kennt jemand Adressen und /oder Hintergrundinformationen?

      ich habe Dich schon verstanden, glaub' mir ; )

      Leider weis ich nicht, wo so ein Service angeboten wird.
      Wie gesagt, kann man so etwas ohne grossen Aufwand selbst programmieren, Perl gibt Dir dafuer alle Werkzeuge in die Hand.

      Scheinbar willst Du das ja aber nicht, oder wieder ein Missverstaendis ?

      MfG
      David

      Gruss
        Kai

    3. Hallo David,

      Was ich suche ist eine Möglichkeit, diesen String in das Subject
      (oder in den Body) einer E-Mail zu schreiben, und das ganze an einen
      bestimmten Server zu schicken.

      Das wär dann wohl ein Mailserver. Muß ja einer sein, weil ander Mail-Server nun mal gerne mit Mailserver reden.

      Dieser Server parst dann die Subject-Zeile, ruft via HTTP das
      CGI-Script (Infoseek) auf, wartet die Ausgabe ab und schickt diese
      dann via (HTML?-)Mail an den Absender zurück.

      Lösungsvorschlag:
      Du richtest auf dem Mailserver einen separaten Email-Account ein, an dem die Mails geschickt werden.

      jetzt gibts zwei Möglichkeiten:
      1.) mittels von mir angesprochenen forward-Mechanismus wird das Mail direkt in ein Script geschickt.
          (Eintrag in der Datei '.forward')
      2.) wenn 1.) nicht geht, dann kannst Du mit den entsprechenden Perl-Modulen (LWP und co. und einige andere auch) einen Email-Client basteln, der zyklisch die Mails vom Mailserver abholt.

      Beide Varianten machen dann folgenderweise weiter:
      sie parsen die Subject-Zeile, starten einen HTTP-Useragent, der den Request ausführt und sammeln die Daten ein.

      Das Ganze stoppelst Du in ein Mail zusammen und schickst es zurück.

      Dabei kannst Du natürlich alle möglichen Checks machen, ob Du es machst oder nicht (Absender...).

      Ich denk mir, daß es wahrscheinlich keinen gibt, der sowas als Dienst anbietet, weil wenn ich schon einen Internet-Zugang habe, werde ich meist auch gleich meinen Browser benutzen und nicht umständlich mit E-Mail arbeiten.
      Nicht daß ich jetzt die sinnhaftigkeit Deiner Idee in Frage stellen möchte. Es gibt sicherlich spezial-Fälle, wo es durchaus Sinn macht, so was zu realisieren.

      bis dann
      Klaus