pattitheonly: durch Trigger in MYSQL Email auslösen?

Ist es möglich durch eine Triggerbedingung in MYSQL eine EMail auszulösen bzw an jemanden zu schicken?

Danke.

  1. Hallo Patti,

    Ist es möglich durch eine Triggerbedingung in MYSQL eine EMail auszulösen bzw an jemanden zu schicken?

    wenn ich etwas über die Fähigkeiten einer bestimmten Software eines bestimmten
    Herstellers wissen möchte, dann schaue ich zuallererst in dessen Dokumentation
    nach, letztens bei Microsoft, in Deinem Fall bei MySQL:
    Klick.

    Das Inhaltsverzeichnis ist ziemlich umfangreich, zwei Einträge fallen mir ins
    Auge, der Abschnitt "Trigger" und der Abschnitt "Frequently asked questions".
    Vielleicht hatte ja jemand die gleiche Frage, ich setze auf die FAQ:
    Klick.

    Wow, da gibt es einen Abschnitt "A.5. MySQL 5.0 FAQ — Triggers".
    Klick

    Zwei Einträge bieten sich an (da wir die Trigger-Doku ja schon übersprungen haben):

    • 28.5.2:  Is there a discussion forum for MySQL Triggers?
    • 28.5.10:  Can triggers call an external application through a UDF?

    Letzeres ist doch genau das, was Du willst, ein Mail-Programm aufrufen. (UDF heißt übrigens "user defined function").
    Klick

    Mist, so geht es nicht. Also ab ins Forum:
    Klick

    Bereits auf der ersten Seite findest Du eine Diskussion "Send email via trigger":
    Klick

    Ich hab' sie für Dich überflogen, ich empfehle Dir jedoch den ganzen Thread zu lesen:

    Freundliche Grüße

    Vinzenz

    1. Hallo Vinzenz,
      danke für die Hilfe. Ich werde mich ersteinmal belesen :-)

      Gruß Patti

    2. Hallo Vinzenz,
      es scheint ja so zu sein, das ein Trigger keine Mail unter einem Unix System auslösen kann?

      Es schein ja so, das ich nur ein TXTFile füllen kann und dieses dann versende? Ich kenne mich leider nicht mit diesem mailroot Verzeichnis aus. Da muss ich auch noch nachlesen.

      DELIMITER |

      CREATE TRIGGER sometable_after_update AFTER UPDATE ON some_table FOR EACH ROW BEGIN
        SELECT  concat("To: ",NEW.mail),
                "From: triggers@mysql",
                concat("Subject: ",NEW.subject),
                "",
                NEW.body
        INTO OUTFILE "/inetpub/mailroot/pickup/mail.txt"
        FIELDS TERMINATED by '\r\n';
      END;|

      DELIMITER ;

      1. Hallo Patti,

        es scheint ja so zu sein, das ein Trigger keine Mail unter einem Unix System auslösen kann?

        Du hast also ein UNIX-System zur Verfügung :-)
        Wenn Dein Mail Transfer Agent (MTA, z.B. Postfix, Sendmail, Qmail, ...) es nicht
        erlaubt, sich einfach etwas in die Mail-Queue schreiben zu lassen, dann entfällt
        diese Möglichkeit natürlich. Das in den Forumsbeiträgen beschriebene Verfahren
        war dort allein für Windows, IIS und den dortigen SMTP-Dienst angegeben.

        Du solltest gelesen haben, dass Du keinen Zugriff auf externe Programme hast,
        d.h. deswegen höchstens den Cronjob-Vorschlag des MySQL-Mitarbeiter umsetzen
        könntest. Dann kannst Du aber auch gleich in Deiner Anwendung (in Deinen
        Anwendungen), die Daten verändern (oder was auch immer Deinen Trigger auslöst),
        die Mail verschicken.

        Mein Beitrag war vor allem darauf ausgerichtet, zu zeigen, wie man die
        Dokumentation nutzen kann, um sich zielgerichtet Informationen zu seinem
        Problem zu beschaffen, am besten Informationen aus erster Hand.

        Freundliche Grüße

        Vinzenz