Fritz: bei E-Mail Eingang PHP Script starten?

Hallo,

gibt es eine Möglichkeit, beim Eingang einer E-Mail auf dem Server ein PHP Script zu starten?
Hintergrund: ich möchte eine Datenbank per SMS aktualiseren.
Mein Ansatz bisher: Die SMS schicke ich an den E-Mail account. Per PHP könnte ich die E-Mails auslesen und in die Datenbank schreiben. Aber dazu müßte natürlich das Script angestoßen werden.
Oder hat jemand eine Idee, wie das mit SMS -> Datenbank anders zu realisieren wäre.

Gruß Fritz

--
ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
  1. Hi,

    gibt es eine Möglichkeit, beim Eingang einer E-Mail auf dem Server ein PHP Script zu starten?

    wer empfängt die Mail? Der Mailserver. Also geht derartiges entweder dort - oder nirgendwo. Abgesehen davon ist PHP etwas, das üblicherweise per HTTP angesprochen wird; Du startest also kein PHP-Script, sondern machst einen HTTP-Request.

    Hintergrund: ich möchte eine Datenbank per SMS aktualiseren.

    Ich hoffe, dass Du hinreichende Sicherheitsvorkehrungen getroffen hast.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      wer empfängt die Mail? Der Mailserver. Also geht derartiges entweder dort - oder nirgendwo. Abgesehen davon ist PHP etwas, das üblicherweise per HTTP angesprochen wird; Du startest also kein PHP-Script, sondern machst einen HTTP-Request.

      o.k.: also lass mich neu formulieren: dann ich einen HTTP-Request machen, indem ich eine Mail an den Server schicke? Wenn ja: wie?

      Hintergrund: ich möchte eine Datenbank per SMS aktualiseren.

      Ich hoffe, dass Du hinreichende Sicherheitsvorkehrungen getroffen hast.

      Aber sicher ;-)
      Gruß Fritz

      --
      ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
      1. Hi,

        wer empfängt die Mail? Der Mailserver. Also geht derartiges entweder dort - oder nirgendwo.
        o.k.: also lass mich neu formulieren: dann ich einen HTTP-Request machen, indem ich eine Mail an den Server schicke? Wenn ja: wie?

        wer empfängt die Mail? Der Mailserver. Also geht derartiges entweder dort - oder nirgendwo.

        Cheatah, sprechen Sie zwo mal, sprechen Sie zwo mal, kommen, kommen

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo,

    ist nicht ganz was du suchst, aber du kannst es die ja trotzdem mal anschauen:
    http://slackerbit.ch/archives/2003/02/01/blogging_via_mail_securely.html

    Mit freundlichen Grüßen,
    Andreas Waidelich

    --
    signatures eat bandwidth
    1. Hallo,

      hier hab ich auch noch was:
      http://www.fraikin.net/sms2email-liveticker/index.php?l=de

      Mit freundlichen Grüßen,
      Andreas Waidelich

      --
      signatures eat bandwidth
  3. Moin!

    gibt es eine Möglichkeit, beim Eingang einer E-Mail auf dem Server ein PHP Script zu starten?

    Ja, klar. Aber nicht unbedingt per HTTP.

    Wenn du weitgehenden Zugriff auf deinen Mailserver hast, kannst du deinen eigenen Mailaccount so konfigurieren, dass er Mails immer oder auch nur in bestimmten Fällen besonders behandelt.

    Diese besondere Behandlung kann so aussehen, dass er ein PHP-Skript (Kommandozeilenversion) startet und ihm die Mail auf der Standardeingabe übergibt. Dann kannst du grundsätzlich alles per PHP regeln - auch das Schreiben in die Datenbank.

    Wenn dein Mailserver nur ein dummer Mailserver ist, der keinerlei Benutzerkonfiguration zuläßt, hast du leider Pech.

    Dann mußt du irgendeinen Mechanismus finden, ständig (oder zumindest mit einer gewissen Regelmäßigkeit) dein Postfach abzufragen und Mails, die in die Datenbank gehen sollen, auszulesen. Obacht: Wenn du die Mails nicht in ein eigenes Postfach schickst, dann holt dein Mailprogramm in ungünstigen Konstellationen diese SMS-Mails vor deinem PHP-Skript ab.

    Für diesen Mechanismus benötigst du einen Server, der per Cronjob regelmäßig das PHP-Skript aufruft, welches dann ins Postfach guckt und die Datenbank aktualisiert.

    Wenn du es ganz kompliziert machen mußt, weil dein Webserver dich keine eigenen Cronjobs (oder nur zu seltene, z.B. alle 24 Stunden) anlegen läßt, dann kannst du den Cronjob auch auf deinem privaten Rechner anlegen und das Schreiben in die Datenbank durch Aufrufen und POSTen zu einem PHP-Skript erledigen, was auf dem Webserver liegt. Das funktioniert natürlich nur, wenn und solange du mit diesem Rechner online bist.

    Grundsätzlich hast du aber das Problem, dass HTTP und SMTP zwei grundsätzlich verschiedene Universen sind, zwischen denen ein Transfer nicht so einfach möglich ist. Insbesondere kommt erschwerend hinzu, dass in der Regel zwei vollkommen unterschiedliche und voneinander getrennte Serversysteme zum Einsatz kommen, zwischen denen eine Benachrichtigung nicht so sonderlich simpel realisierbar ist.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
    1. Hallo,

      Moin!

      gibt es eine Möglichkeit, beim Eingang einer E-Mail auf dem Server ein PHP Script zu starten?

      Wenn du weitgehenden Zugriff auf deinen Mailserver hast, kannst du deinen eigenen Mailaccount so konfigurieren, dass er Mails ... besonders behandelt.
      Diese besondere Behandlung kann so aussehen, dass er ein PHP-Skript (Kommandozeilenversion) startet

      Ja, genau so was suche ich.
      Und wie müsste diese Konfiguration jetzt in etwa aussehen? Mein Hoster würde da sicher mitmachen, wenn ich genau wüßte, was zu tun ist.

      Gruß Fritz

      --
      ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)
      1. Moin!

        Wenn du weitgehenden Zugriff auf deinen Mailserver hast, kannst du deinen eigenen Mailaccount so konfigurieren, dass er Mails ... besonders behandelt.
        Diese besondere Behandlung kann so aussehen, dass er ein PHP-Skript (Kommandozeilenversion) startet
        Ja, genau so was suche ich.
        Und wie müsste diese Konfiguration jetzt in etwa aussehen? Mein Hoster würde da sicher mitmachen, wenn ich genau wüßte, was zu tun ist.

        Informiere dich mal darüber, was mit procmail möglich ist. Oder mit ".forward"-Dateien, bzw. dem diesen entsprechenden Äquivalent des Mailservers.

        Bei qmail kann man beispielsweise die Mail durch eine einfache Konfigurationsdatei an ein Programm weitergeben lassen, indem man eine passenden ".qmail"-Datei anlegt.

        Eine konkrete Antwort auf deine Nachfrage kann ich aber nicht geben, das hängt viel zu sehr von der Konfiguration und verwendeten Software deines Hosters ab. Sprich mit ihm. Er weiß sicherlich besser, was er erlaubt und was nicht, bzw. was bei ihm geht.

        - Sven Rautenberg

        --
        ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
        1. Hallo,

          Informiere dich mal darüber, was mit procmail möglich ist. Oder mit ".forward"-Dateien, bzw. dem diesen entsprechenden Äquivalent des Mailservers.

          Ja, .forward ist es!
          meine .forward sieht so aus:
          -----------------------------
          action@meine-adresse.de
          |/home/w10500/web/public_html/action_sms.php
          ---------------------------------------
          und der erste Teil, nämlich das forwarden auf action@meine-adresse.de funktioniert.
          Der zweite Teil, der das php script aufrufen sollte, tut's leider nicht :-(
          Die Fehlermeldung vom Mail Delivery System:
          ------------------------------------
          A message that you sent could not be delivered to one or more of its
          recipients. This is a permanent error. The following address(es) failed:

          pipe to |/home/wxxxxx/web/public_html/action_sms.php
              generated by sms@meine-adresse.de
              local delivery failed
          ------------------------------------
          Kann mir jemand mit dieser Fehlermeldung weiterhelfen. warum failed die local delivery? hab schon alle möglichen Varianten bei der Adressierung versucht. Das scheint es nicht zu sein. Oder spricht der mailserver nicht mit dem webserver (würde cheatah sagen). Wie bring ich die beiden dazu, miteinander zu sprechen?

          Eine konkrete Antwort auf deine Nachfrage kann ich aber nicht geben, das hängt viel zu sehr von der Konfiguration und verwendeten Software deines Hosters ab. Sprich mit ihm. Er weiß sicherlich besser, was er erlaubt und was nicht, bzw. was bei ihm geht.

          Es sieht so aus, als ob er es gerne erlauben würde, aber auch nicht mehr weiter weiß
          Gruß Fritz

          --
          ss:( zu:| ls:# fo:| de:/ va:) ch:? sh:( n4:? rl:? br:$ js:| ie:| fl:| mo:)