durch Trigger in MYSQL Email auslösen?
pattitheonly
- datenbank
Ist es möglich durch eine Triggerbedingung in MYSQL eine EMail auszulösen bzw an jemanden zu schicken?
Danke.
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):
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
Hallo Vinzenz,
danke für die Hilfe. Ich werde mich ersteinmal belesen :-)
Gruß Patti
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 ;
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