Heim >Datenbank >MySQL-Tutorial >Wie sende ich E-Mail-Benachrichtigungen von MySQL 5.1 mithilfe von Triggern und benutzerdefinierten Funktionen?
So senden Sie E-Mail-Benachrichtigungen von MySQL 5.1
In dieser Anleitung erfahren Sie, wie Sie beim Einfügen E-Mail-Benachrichtigungen von MySQL 5.1 senden neuer Zeilen in eine Tabelle. Die Empfängerliste wird dynamisch basierend auf einer Select-Anweisung generiert.
Verwendung des SMTP-Dienstes
Wenn Sie einen aktiven SMTP-Dienst haben, können Sie den Befehl „outfile“ verwenden um E-Mails zu versenden. Dabei wird eine Datei im SMTP-Ablageverzeichnis erstellt, die dann vom SMTP-Dienst verarbeitet wird. Diese Methode kann jedoch zu doppelten Dateinamen mit hohem Volumen führen, es gibt jedoch Techniken, um dieses Problem zu entschärfen.
Erstellen einer benutzerdefinierten Funktion (UDF)
Alternativ: Sie können eine UDF (User-Defined Function) für den E-Mail-Versand erstellen. Hier ist eine einfache Triggerlösung, die diesen Ansatz demonstriert:
CREATE TRIGGER test.autosendfromdrop BEFORE INSERT ON test.emaildrop FOR EACH ROW BEGIN /* START THE WRITING OF THE EMAIL FILE HERE*/ SELECT concat("To: ",NEW.To), concat("From: ",NEW.From), concat("Subject: ",NEW.Subject), NEW.Body INTO OUTFILE "C:\inetpub\mailroot\pickup\mail.txt" FIELDS TERMINATED by '\r\n' ESCAPED BY ''; END;
Dieser Trigger erstellt eine temporäre Datei mit der E-Mail-Nachricht, die dann vom SMTP-Dienst erfasst wird.
Mark Nach oben E-Mail-Text
Um den E-Mail-Text in HTML zu formatieren, können Sie eine Funktion wie die verwenden Folgendes:
CREATE FUNCTION `HTMLBody`(Msg varchar(8192)) RETURNS varchar(17408) CHARSET latin1 DETERMINISTIC BEGIN declare tmpMsg varchar(17408); set tmpMsg = cast(concat( 'Date: ',date_format(NOW(),'%e %b %Y %H:%i:%S -0600'),'\r\n', 'MIME-Version: 1.0','\r\n', 'Content-Type: multipart/alternative;','\r\n', ' boundary=\"----=_NextPart_000_0000_01CA4B3F.8C263EE0\"','\r\n', 'Content-Class: urn:content-classes:message','\r\n', 'Importance: normal','\r\n', 'Priority: normal','\r\n','','\r\n','','\r\n', 'This is a multi-part message in MIME format.','\r\n','','\r\n', '------=_NextPart_000_0000_01CA4B3F.8C263EE0','\r\n', 'Content-Type: text/plain;','\r\n', ' charset=\"iso-8859-1\"','\r\n', 'Content-Transfer-Encoding: 7bit','\r\n','','\r\n','','\r\n', Msg, '\r\n','','\r\n','','\r\n', '------=_NextPart_000_0000_01CA4B3F.8C263EE0','\r\n', 'Content-Type: text/html','\r\n', 'Content-Transfer-Encoding: 7bit','\r\n','','\r\n', Msg, '\r\n','------=_NextPart_000_0000_01CA4B3F.8C263EE0--' ) as char); RETURN tmpMsg; END ;
Diese Funktion kann aufgerufen werden, um den E-Mail-Text mit entsprechenden HTML-Tags zu formatieren.
Das obige ist der detaillierte Inhalt vonWie sende ich E-Mail-Benachrichtigungen von MySQL 5.1 mithilfe von Triggern und benutzerdefinierten Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!